Как обслуживать статические ресурсы в Яде
С Compojure я могу обслуживать статические ресурсы следующим образом:
(defroutes routes
(route/resources "/"))
Следуя документам Yada, у меня это работает:
(def server
(listener
["/"
[["hello" (as-resource "Hello World!")]
["test" (resource {:produces "text/plain"
:response "This is a test!"})]
[true (as-resource nil)]]]
{:port 3000}))
Но как заставить Yada обслуживать ресурсы из файловой системы?
2 ответа
Решение
В итоге я нашел ответ здесь: Оборачиваем обработчики ресурсов с помощью bidi
(ns yada-test
(:require [yada.yada :refer [listener as-resource]]
[bidi.ring :refer [resources]]))
(def server
(listener
["/"
[["" (resources {:prefix "public/"})]]]
{:port 3001}))
Попробуйте следующее:
(ns yada-test
(:require [clojure.java.io :as io]
[yada.yada :refer [listener as-resource]]]))
(def server
(listener
["/"
[["talks" (as-resource (io/file (io/resource "docs")))]
[true (as-resource nil)]]]
{:port 3001}))
Вам нужно добавить каталог ресурсов в ваш путь к классам и создать docs
папка там.