que - Estructura de la aplicación web Maven y JSF, donde colocar exactamente los recursos JSF.
jsf primefaces (2)
Realmente no entiendo la estructura de directorios con Maven y JSF webapp.
Cuando genero proyecto tengo esta estructura:
src
|_ main
|_ java
|_ resources
|_ webapp
|_ WEB-INF
|_ web.xml
|_ index.xhtml
Quiero incluir algunos recursos:
- archivo javascript
- archivo css
- imagenes
- archivos i18n
Puedo incluir archivos i18n dentro de src/main/resources
pero no en cualquier lugar y puedo incluir archivos JS, CSS e imágenes dentro de src/main/webapp/resources
pero no en cualquier lugar ...
No encontré reglas muy claras en la web sobre la estructura de directorios con JSF y Maven.
¿Cuáles son las reglas por favor?
Gracias
La mejor ubicación para css / images, etc. está en src / main / webapp / images o src / main / webapp / css / etc. Actualmente no hay una ubicación src / main / webapp / resources. La carpeta src / main / resources está destinada a recursos (archivos de propiedades, etc.) que deben filtrarse o ubicarse en la carpeta WEB-INF / classes. Por lo general, no te gusta filtrar imágenes y archivos css. Eche un vistazo a la documentación de maven-war-plugin que proporciona algunos consejos y ejemplos de configuración. El mejor enfoque parecía ser poner todo en src / main / webapp / FOLDER que no debería filtrarse de ninguna manera, de lo contrario, debería ponerlo en src/main/resources y puede controlar el filtrado y los reemplazos
Los recursos JSF a los que se hace referencia mediante <h:outputStylesheet>
, <h:outputScript>
y <h:graphicImage>
(por lo tanto, CSS / JS / images), deben terminar en /resources
carpeta /resources
del contenido web público, allí donde /WEB-INF
carpetas /WEB-INF
y /META-INF
también lo son.
Por lo tanto, debes ponerlos en /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
Esos archivos i18n (supongo que técnicamente significa archivos de paquete de recursos) tienen que terminar en un paquete en /WEB-INF/classes
. El /src/main/resources
está destinado a los archivos que no son de clase y que se supone que terminan en las /WEB-INF/classes
, debe ponerlos allí. Asumiendo un nombre base de paquete de com.example.i18n.text
, proporciónelos como tales:
src
`-- main
|-- java
|-- resources
| `-- com
| `-- example
| `-- i18n
| |-- text.properties
| |-- text_en.properties
| |-- text_es.properties
| `-- text_nl.properties
: