Я создаю тестовый проект clojure/ring, чтобы узнать, как он работает. Я создал приложение я называю «junkapp», и это действительно один обработчикСтатические файлы с clojure и ring
(defn handler [request]
{:status 200
:headers {"Content-type" "text/html"}
:body "Hello World"})
, а также один вызов обернуть-ресурс для статического контента
(def app
(wrap-resource handler "public"))
Итак, в моем project.clj у меня есть ссылка на LEIN-кольцо, а также установить: обработчик моей junkapp.core/приложение
:plugins [[lein-ring "0.8.5"]]
:ring {:handler junkapp.core/app}
, когда я запускаю это с LEIN перспективе, все работает, как ожидалось. Вызов/возвращает «Hello World», а вызов /test.html возвращает содержимое ресурсов/public/test.html.
Но тогда я пытался построить его в военный файл с
lein ring uberwar junkapp.war
и поставить его под WebApps/реж сервера tomcat7. Теперь, когда я перехожу на любой путь под junkapp (so/junkapp /,/junkapp/foo, /junkapp/test.html), он всегда возвращает «Hello World», и я не могу заставить его ссылаться на статический контент вообще. В googling я вижу, что люди просто говорят, что используют compojure.route/resources, но по мере того, как я учусь, я бы хотел, чтобы он работал так, а затем добавлял больше библиотек позже. Что тут происходит?
Вы подтвердили, что статические файлы включены в WAR? – Alex
Да, тестовый вариант здесь конкретно: webapps/junkapp/WEB-INF/classes/public/test.html – MichaelB