Где хранить статические файлы, такие как 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/ подпапке (они доступны через загрузчик классов, но не из прямого запроса браузера).