Где хранить статические файлы, такие как html / css / javascript, в проекте Jetty? - PullRequest
7 голосов
/ 02 февраля 2012

У меня есть проект Maven, который я запускаю с помощью молы:

$ mvn run:jetty

Где в моем проекте я должен хранить свои статические файлы, такие как HTML, CSS, Javascript, изображения?

Мой макет использует простой тип веб-приложения:

/src/main/java/webapp/web-inf/views/

Должен ли я просто создать там папку с именем, например, «активы»?

И тогда мои страницы просмотра как-то будут ссылаться на папку /assets? Я не понимаю, какой путь я буду использовать на своих html-страницах для ссылки на изображение, например:

/assets/images/logo.png

Ответы [ 3 ]

18 голосов
/ 02 февраля 2012

Это не столько вопрос Jetty, сколько общий вопрос веб-приложения на Java. Если вы планируете раздавать их напрямую (например, * .css, * .css, изображения и т. Д.), Поместите их где-нибудь выше WEB-INF, но ниже вашего докрута. Все веб-приложения Java имеют следующую базовую структуру каталогов.

<docroot>
  +WEB-INF/
    +lib/
    +classes/

Все, что в <docroot> доступно напрямую через http. Ничего WEB-INF и ниже нет. Действительно простое веб-приложение с одной страницей (index.jsp), одним изображением в каталоге изображений и его файлом конфигурации (web.xml) будет выглядеть следующим образом.

index.jsp
images/bob.jpg
WEB-INF/
  web.xml
  lib/
  classes/

В index.jsp вы можете ссылаться на bob.jpg как ...

<img src="images/bob.jpg"/>
6 голосов
/ 03 февраля 2012

Это действительно вопрос Maven, а не вопрос Jetty.

Обычно вы помещаете ваши изображения (и т. Д.) В каталог maven webapp - , т.е. source/main/webapp/ (не в web-inf)

Как вы структурируете вещи под свое усмотрение, но это будет в основном зависеть от того, сколько контента вы ожидаете вставить, и от того, как вы думаете, лучше всего организовать это.

source/main/webapp/assets/images нормально, но так же source/main/webapp/images или source/main/webapp/static/.

Затем в своем HTML вы ссылаетесь на изображения, используя любой путь, который вы указали под битом webapp.

0 голосов
/ 03 февраля 2012

Общий ответ - корень вашего веб-приложения - веб-приложение. Динамические ресурсы (например, страницы JSP или шаблоны Freemarker) лучше размещать в подпапке web-inf / (они доступны через загрузчик классов, но не из прямого запроса браузера).

...