Où dois-je placer les fichiers lorsque j'essaie de servir des fichiers statiques avec la structure Web Spark?
Je n'ai rien trouvé en ligne. Je commence à croire que je ne comprends rien aux chemins de classe, chemins relatifs, etc. d'un projet Eclipse et Java.
Ce paragraphe à propos des fichiers statiques dans Spark fait référence à /public
, mais je ne sais pas du tout où ce serait. En utilisant Windows, Eclipse Luna et mon projet sont convertis pour utiliser Maven.
J'ai essayé de regarder le code sur GitHub, mais je suis un peu hors de ma profondeur d'essayer de le trouver.
Vous devez d’abord dire à Spark où rechercher les fichiers statiques comme ceci:
Spark.staticFiles.location("/public");
Dans les versions de Spark antérieures à la version 2.5, vous devez utiliser:
Spark.staticFileLocation("/public");
Ensuite, votre projet devrait avoir un dossier public
sous le dossier de ressources comme ceci
/src/main/resources/public/style.css
Par exemple, j'ai ajouté un fichier style.css
à cet endroit, vous devriez donc y accéder comme ceci:
http://localhost:4567/style.css
Si vous voulez servir un dossier non classpath, vous devez utiliser
Spark.staticFiles.externalLocation("/path/to/dir");
Dans les versions de Spark antérieures à la version 2.5, vous devez utiliser:
Spark.externalStaticFileLocation("/path/to/dir");
Je place mes feuilles de style sous mon contenu statique comme suit:
staticFileLocation( "/web" );
/web/
|-- index.html
+-- styles/
+
+--- default.css
Et l'index.html
... <link href="styles/default.css" rel="stylesheet" type="text/css" />
J'ai aussi d'autres pages HTML générées comme avec freemarker. Ils collectent juste le chemin:
Affiche la manière dont l'index CSS l'obtient.
Source: https://groups.google.com/d/msg/sparkjava/5vMuK_5GEBU/vh_jHra75u0J
Faites un clic droit sur votre projet sur Eclipse, sélectionnez Create New -> Package. Donnez un nom au nouveau paquet, etc.
Placez vos ressources statiques sous ce paquet afin que nous puissions être sûrs qu’elles se trouvent sous votre chemin de classe.
src/main/resources
Spark.staticFileLocation("/public");
par Spark.staticFileLocation("public");