33 votes

Comment servir du contenu statique à partir de tomcat

J'ai un répertoire contenant un certain nombre de fichiers statiques (*.png, *.css, etc).
Je pensais (peut-être à tort) qu'il suffirait de créer un répertoire dans le fichier WEB-INF de mon application et que je pourrais accéder aux fichiers en les référençant simplement par leur nom:
Ex:

Ma structure de répertoire est la suivante:

+WEB-INF
   |
   +---static
       |
       +--styles.css
       +--header.png

Mon web.xml est le suivant

myapp

        contextConfigLocation
        classpath:com/example/myapp/spring/applicationContext.xml

            org.springframework.web.context.ContextLoaderListener

            com.example.myapp.ContextListener

        wicket.myapp
        org.apache.wicket.protocol.http.WicketFilter

            applicationFactoryClassName
            org.apache.wicket.spring.SpringWebApplicationFactory

        wicket.session
        org.apache.wicket.protocol.http.servlet.WicketSessionFilter

            filterName
            wicket.myapp

        wicket.myapp
        /*

        wicket.session
        /servlet/*

Mais....
Cela ne fonctionne pas, je reçois simplement une erreur 404 - fichier non trouvé en tentant d'accéder aux ressources contenues dans le répertoire "static". Est-ce que j'ai oublié quelque chose ici?

59voto

Thilo Points 108673

Ne les mettez pas dans WEB-INF, ce dossier est prévu pour les éléments que vous ne voulez pas servir directement.

Mettez-le à côté de WEB-INF

+- WEB-INF
+- static

5voto

Chandru Points 4770

Les fichiers ne doivent pas être à l'intérieur de WEB-INF. Ils doivent être placés directement à l'intérieur du répertoire de votre application Web ou du fichier WAR.

Regardez ma réponse ici pour inclure le chemin du contexte avant vos ressources statiques.

3voto

Robby Pond Points 37875

WEB-INF est un répertoire protégé. Ils doivent être placés dans le répertoire racine de l'application Web ou dans un sous-répertoire.

0voto

Alexis Dufrenoy Points 4872

La correspondance entre l'itinéraire URL et le chemin dans le système de fichiers doit être définie dans le fichier server.xml (dans le répertoire conf ou votre serveur Tomcat).

Dans l'élément Host de votre application web dans le fichier server.xml, ajoutez quelque chose comme ceci :

Par exemple :

    ...

Vous pouvez alors accéder à votre répertoire par l'URL http:///static

Notez que votre répertoire peut être n'importe où dans votre système de fichiers, ce qui est généralement pratique.

Vous pouvez trouver plus d'informations ici. C'est là que j'ai obtenu l'exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X