Структура веб-приложения 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 и вы можете контролировать фильтрацию и замены

Другие вопросы по тегам