Где хранить статические файлы, такие как html/css/javascript в проекте причала?
у меня есть проект maven, который я запускаю с помощью jetty:
$ mvn run:jetty
где в моем проекте я должен хранить свои статические файлы, такие как HTML, CSS, Javascript, изображения?
мой макет использует простой тип арки веб-приложения:
/src/main/java/webapp/web-inf/views/
должен ли я просто создать папку с именем, например, "активы"?
и тогда мои страницы просмотра будут ссылаться на почему? Я смущен тем, какой путь я буду использовать на своих html-страницах для ссылки на изображение например:
/assets/images/logo.png
3 ответов
это не столько вопрос пристани, сколько общий вопрос Java webapp. Если вы планируете обслуживать их напрямую (например,*.стиль CSS.* ,css, изображения и т. д.), поместите их где-то выше WEB-INF
но ниже вашего docroot. Java WebApps все следующие основные структуры каталогов.
<docroot>
+WEB-INF/
+lib/
+classes/
ничего <docroot>
можно прямо через прямо через HTTP. Ничего WEB-INF
а ниже нет. Очень простой webapp с одной страницей (индекс.JSP), в одного изображения в изображения каталог и файл конфигурации (web.xml) будет выглядеть так.
index.jsp
images/bob.jpg
WEB-INF/
web.xml
lib/
classes/
в индекс.jsp вы можете сослаться на Боба.jpg нравится...
<img src="images/bob.jpg"/>
это действительно вопрос Maven, а не вопрос пристани.
обычно вы помещаете свои изображения (и т. д.) в maven - то есть source/main/webapp/
(не под web-inf
)
как вы структурируете вещи под этим, зависит от вас, но в основном это будет зависеть от того, сколько контента вы ожидаете вложить, и как вы думаете, что лучше всего организовать его.
source/main/webapp/assets/images
- это хорошо, но вот это source/main/webapp/images
или source/main/webapp/static/
.
затем, в вашем HTML, вы ссылаетесь на изображения, используя любой путь, который вы помещаете под webapp
бит.
общий ответ - корень вашего веб-приложения-webapp. Динамические ресурсы (как страницы JSP или шаблоны Freemarker) лучше бы были в веб-inf/ подпапке (они доступны через загрузчик классов, но не из прямого запроса браузера).