2012-02-02 9 views
6

Tengo un proyecto Maven que se ejecutan utilizando amarre:Dónde almacenar archivos estáticos como html/css/javascript en un proyecto de embarcadero?

$ mvn run:jetty 

Cuando en mi proyecto debería a almacenar mis archivos estáticos como HTML, CSS, Javascript, imágenes?

Mi diseño es el uso de un tipo simple aplicación web de arco:

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

¿Debo crear una carpeta allí llamado, por ejemplo, 'activos'?

¿Y entonces mis páginas de vista harán referencia a la carpeta /assets de alguna manera? Estoy confundido en cuanto a qué camino voy a utilizar en mis páginas html para hacer referencia a una imagen como:

/assets/images/logo.png 

Respuesta

17

Esto no es tanto una cuestión embarcadero ya que es un problema general de aplicación web Java. Si planea servirlos directamente (como * .css, * .css, imágenes, etc.), colóquelos en algún lugar sobre WEB-INF pero debajo de su docroot. Java WebApps son todas las siguientes estructuras básicas de directorios.

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

Cualquier cosa en <docroot> es accesible directamente a través de http hacia arriba. Cualquier cosa WEB-INF y siguientes no lo es. Una aplicación web realmente simple con una página (index.jsp), una imagen en un directorio de imágenes y su archivo de configuración (web.xml) se vería así.

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

En index.jsp se podría hacer referencia a bob.jpg como ...

<img src="images/bob.jpg"/> 
+0

escribiste 'Cualquier cosa en es alcanzable directamente', ¿quisiste decir en docroot? – Blankman

+0

@Blankman sí. Cualquier cosa en el docroot se puede servir directamente. Cualquier cosa en WEB-INF y abajo no puede. –

0

La respuesta general es - la raíz de la aplicación web es webapp. Los recursos dinámicos (como páginas JSP o plantillas Freemarker) estarían mejor en una subcarpeta web-inf/(son accesibles a través del cargador de clases pero no desde una solicitud directa del navegador).

6

Esta es realmente una pregunta de Maven en lugar de una pregunta de Jetty.

Normalmente usted pondría sus imágenes (etc) en el experto webapp directorio - es decirsource/main/webapp/ (no bajo web-inf)

modo de estructurar las cosas debajo de eso depende de usted, pero sobre todo va a depender de cómo mucho contenido que está esperando incluir, y cómo cree que es mejor organizarlo.

source/main/webapp/assets/images está bien, pero también lo es source/main/webapp/images o source/main/webapp/static/.

Luego, dentro de su HTML, hace referencia a las imágenes usando cualquier ruta que ingrese debajo del bit webapp.

+0

Así que agregué test.html dentro de la carpeta webapp, ejecuté mvn clean install, mvn jetty: run y dice que no se encontró el mapa para /test.html Estoy navegando por http://127.0.0.1:8080/test.html – Blankman

+0

I hace referencia a una imagen de mi index.jsp, la imagen tampoco se procesó. – Blankman

Cuestiones relacionadas