Как обслуживать статические ресурсы в Яде - PullRequest
1 голос
/ 19 апреля 2019

С 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 ]

3 голосов
/ 19 апреля 2019

В итоге я нашел ответ здесь: Оборачивание обработчиков ресурсов с помощью bidi

(ns yada-test
  (:require [yada.yada :refer [listener as-resource]]
            [bidi.ring :refer [resources]]))

(def server
  (listener
    ["/"
     [["" (resources {:prefix "public/"})]]]
    {:port 3001}))
0 голосов
/ 19 апреля 2019

Попробуйте следующее:

(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.

...