Au service de fichiers statiques avec anneau / compojure - d'une guerre
Question
anneau utilisant (et les outils lein-ring) - Je suis en mesure de servir les fichiers statiques de « ressources », etc. selon les docs lors de l'exécution dans le développement - cependant - quand j'emballer les choses par privilège uberwar Je ne sais pas comment faire servir ces fichiers lors de l'exécution dans un conteneur. Je vois en conflit docs sur wrap-ressources, ou la mise: chemin des ressources, mais aucun ne semble travailler
.La solution
par Mise en route Wiki, mettez route/resources
ci-dessous vos chemins:
(defroutes main-routes
(GET "/" [] "<h1>Hello World Wide Web!</h1>")
(route/resources "/")
(route/not-found "Page not found"))
... et puis, créez un resources/public
de dossier dans votre projet, mettez vos fichiers statiques là-bas. Lorsque vous faites référence à ces fichiers, le /resources/public
est implicite, de sorte que vous pouvez écrire quelque chose comme:. (include-css "/css/site.css")
Autres conseils
compojure.route/resources
devrait faire ce que vous voulez.
Il suffit de mettre les fichiers dans resources/public
puis ajoutez un (resources "/")
d'itinéraire vers la fin de votre liste de routes.
Vous avez besoin d'un lein-ring assez récente pour que cela fonctionne correctement; les anciennes versions de lein-ring ne prennent pas en charge le répertoire des ressources pour les biens publics.