Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Java web app не видит статические файлы. JS, CSS и т.д. Развертываю на Spring MVC

#maven #spring #spring_mvc #java #tomcat


Я использую Spring mvc+maven+tomcat. Когда я пишу java web app проект в NetBeans,
я его периодически запускаю кнопкой F6 (Run Project). То есть я не произвожу его явное
развертывание на Томкате. Этим я хочу проверить только что внесённые изменения.  И
это стало бо-о-о-ольшой ошибкой для меня. Это аукнулось.
Имеется вот такая структура папок-файлов: 



В form.jsp вызываю свои файлы так:





И конечно же, в конфиге спринга прописал пути, ну чтобы спринг мог находить статические
ресурсы: 





Суть проблемы:
Когда я запускаю кнопкой F6 всё работает хорошо. Все JS, CSS подключаются как надо.
Но когда я делаю mvn package и выкидываю готовый war в папку webapps томката, он
не находит эти статические файлы. Открывается только голая form.jsp безо всяких CSS, JS.
Что делать?

Вторая проблема: очень странно, что при запуске F6 путь URL в браузере не такой,
как при запуске задеплоенного war. Если я запускаю F6  - путь такой http://localhost:8080/spring-chat-test/
 A если запускаю задеплоенный, то http://localhost:8080/spring-chat-test-1.0/
    


Ответы

Ответ 1



Это решилось использованием jstl: "> Они добавляют контекст (путь) откуда установлено веб приложение.

Ответ 2



Попробуйте добавить контекст приложения в URL JS-скриптов и стилей. По поводу второй проблемы. Скорее всего в NetBeans в настройках проекта явно прописан контекст /spring-chat-test, в то время как в томкате контекст == имени папки, в которую задеплоилось приложение (в вашем случае это spring-chat-test-1.0). Самое простое - настроить maven, чтобы тот собирал war с нужным именем. Например так: ... spring-chat-test

Комментариев нет:

Отправить комментарий