2017-04-05 1 views
0

J'ai Java webapp (RESTEasy) organisé comme suit:Serve fichiers statiques de Java webapp sous-répertoire

src/main 
    |- java/ 
    |- webapp/ 
    |- WEB-INF/ 
     |- web.xml 
    |- public/ 
     |- <compiled static files> 

Le dossier public est rempli avec des fichiers statiques (index.html, js compilés, et les ressources) css par ma chaîne de construction. Lors de la construction de l'archive WAR, je peux accéder aux fichiers statiques sous /public/index.html.

Est-il possible de traiter mes fichiers statiques directement à partir de la racine (/index.html)? Je sais que je peux directement les mettre dans mon dossier webapp, mais en raison de ma chaîne de construction et de la structure du projet, je voudrais éviter cela.

+0

Est-ce le printemps? –

+0

Non, RESTEasy. Mais la configuration devrait être similaire à la plupart des servlets Java. – fwind

+0

Pouvez-vous faire en sorte que votre chaîne de compilation les déplace vers la racine dans le fichier WAR? C'est assez facile de le faire avec ANT. – markbernard

Répondre

1

Normalement, les conteneurs vous permettent de spécifier la racine du document. Cela signifie que vous pouvez avoir l'application Web comme structure où vous voulez. Mais, vous ne pouvez pas avoir quelque chose comme ce que vous voulez. Depuis, ce n'est pas la structure de l'application Web.

Certains conteneurs vous permettent également de spécifier la base de documents. Comme Tomcat Ex, vous pouvez spécifier dans le server.xml

<Context docBase="/path/to/files" path="/files" /> 

Une solution de contournement est l'ajout d'un filtre qui préfixer « public » à tous les urls.