我不太了解Maven和JSF webapp的目录结构。
当我生成项目时,我有这个结构:
src
|_ main
|_ java
|_ resources
|_ webapp
|_ WEB-INF
|_ web.xml
|_ index.xhtml
我想包括一些资源:
- JavaScript 文件
- CSS 文件
- 图像
- i18n 文件
我可以在 src/main/resources
中包含 i18n 文件,但不能在任何地方包含,我可以在 src/main/webapp/resources
中包含 JS 文件、CSS 文件和图像,但不能在任何地方......
我在网络上没有找到关于JSF和Maven目录结构的非常明确的规则。
请问有什么规则?
谢谢
<h:outputStylesheet>
、<h:outputScript>
和<h:graphicImage>
(因此,CSS/JS/images)引用的JSF资源应该最终放在公共Web内容/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/JS/图像资源?
- JSF 资源库的用途是什么,应该如何使用它?
css/images等的最佳位置是在src/main/webapp/images或src/main/webapp/css/etc.目前没有位置src/main/webapp/resources。src/main/resources 文件夹用于应过滤或应位于 WEB-INF/classes 文件夹中的资源(属性文件等)。所以通常你不喜欢过滤图像和css文件。看看 maven-war-plugin 文档,其中提供了一些提示和配置示例。最好的方法似乎是将所有内容放入src/main/webapp/FOLDER中,无论如何都不应该被过滤,否则你应该把它放到src/main/resources中,你可以控制过滤和替换。