Обслуживание статических файлов с кольцом /compojure - от войны
Использование ring (и инструментов lein-ring) - я могу обслуживать статические файлы из "ресурсов" и т.д. в соответствии с документами при работе в процессе разработки, однако - когда я упаковываю вещи через удержание uberwar, я понятия не имею как заставить его обслуживать эти файлы при работе в контейнере. Я вижу конфликтующие документы в wrap-resource или настройке: resource-path, но ни один из них не работает.
Ответы
Ответ 1
Согласно Compojure Приступая к работе Wiki, поставьте route/resources
ниже своих путей:
(defroutes main-routes
(GET "/" [] "<h1>Hello World Wide Web!</h1>")
(route/resources "/")
(route/not-found "Page not found"))
... и затем создайте в своем проекте папку resources/public
, поместите туда свои статические файлы. При обращении к этим файлам /resources/public
неявно, поэтому вы можете написать что-то вроде: (include-css "/css/site.css")
.
Вот пример, который развертывается в облачных средах.
Ответ 2
compojure.route/resources
должен делать то, что вы хотите.
Просто поместите файлы в resources/public
, а затем добавьте маршрут (resources "/")
в конец списка ваших маршрутов.
Для правильной работы вам требуется довольно недавнее кольцо лейн; более старые версии lein-ring не поддерживают каталог ресурсов для публичных активов.