通过特定路由包装文件

时间:2017-06-21 09:36:12

标签: clojure resources compojure

我正在为我的compojure应用设置静态资源。我需要使用wrap-file而不是wrap-resource,因为我需要从文件系统提供静态文件。

我按照此wiki并配置了wrap-file

现在,我可以从http:\\localhost\static-file.css

提供静态资源了

我想要做的是在特定环境http:\\localhost\context\static-file.css

中提供我的静态资产

1 个答案:

答案 0 :(得分:3)

使用Compojure路由时,重要的是要记住任何路由都可以包含在中间件中,而不仅仅是顶级路由集合。考虑到这一点,我们可以使用Compojure的context在需要的地方挂载文件系统路径。

(defroutes app-routes
  (GET "/" [] "Hello World")
  (context "/context" []
           (-> (route/not-found "File Not Found")
               (wrap-file "path-to/static-files")))
  (route/not-found "Not Found"))

(def app
  (-> app-routes
      (wrap-defaults site-defaults)))