Структура веб-приложения Maven и JSF, куда именно помещать ресурсы JSF
Я не очень понимаю структуру каталогов с веб-приложением Maven и JSF.
Когда я генерирую проект, у меня есть эта структура:
src
|_ main
|_ java
|_ resources
|_ webapp
|_ WEB-INF
|_ web.xml
|_ index.xhtml
Я хочу включить некоторые ресурсы:
- файл JavaScript
- файл CSS
- изображений
- файлы i18n
Я могу включить файлы i18n внутри src/main/resources
но не где-нибудь, и я могу включить файл JS, файл CSS и изображения внутри src/main/webapp/resources
но не где-нибудь...
Я не нашел очень четких правил в Интернете о структуре каталогов с JSF и Maven.
Какие правила, пожалуйста?
Спасибо
2 ответа
Ресурсы JSF, на которые должны ссылаться <h:outputStylesheet>
, <h:outputScript>
а также <h:graphicImage>
(таким образом, CSS/JS/ изображения), должен в конечном итоге в /resources
папка публичного веб-контента, там где /WEB-INF
а также /META-INF
папки тоже есть.
Таким образом, вы должны положить их в /src/main/webapp/resources
,
src
`-- main
|-- java
|-- resources
`-- webapp
|-- resources
| |-- css
| | `-- style.css
| |-- images
| | `-- logo.png
| `-- js
| `-- script.js
|-- WEB-INF
| `-- web.xml
`-- index.xhtml
Эти файлы i18n (я полагаю, вы технически имели в виду файлы комплектов ресурсов) должны в конечном итоге оказаться в пакете в /WEB-INF/classes
, /src/main/resources
предназначен для неклассных файлов, которые должны заканчиваться в /WEB-INF/classes
Вы должны положить их туда. Предполагая базовое имя пакета com.example.i18n.text
, предоставьте их как таковые:
src
`-- main
|-- java
|-- resources
| `-- com
| `-- example
| `-- i18n
| |-- text.properties
| |-- text_en.properties
| |-- text_es.properties
| `-- text_nl.properties
:
Смотрите также:
Лучшее место для css / images и т. Д. Находится в src / main / webapp / images или src / main / webapp / css / и т. Д. В настоящее время нет места src / main / webapp / resources. Папка src / main / resources предназначена для ресурсов (файлов свойств и т. Д.), Которые необходимо отфильтровать или поместить в папку WEB-INF/classes. Так что обычно вы не любите фильтровать изображения и CSS-файлы. Взгляните на документацию по maven-war-plugin, в которой приведены некоторые советы и примеры конфигурации. Наилучшим подходом, по-видимому, было бы поместить все в src/main/webapp/FOLDER, который ни в коем случае не должен фильтроваться, иначе вы должны поместить это в src / main / resources и вы можете контролировать фильтрацию и замены