标签: compojure

使用compojure.route/resources和ring.middleware.resource/wrap-resource

我正在尝试用ringcompojure学习clojure web开发,我对compojure.route/resourcesand 的用法有点不清楚ring.middleware.resource/wrap-resource.

我已经看过了API文档,以及两者的来源compojure.routering.middleware.resource.但是,我仍然不清楚是否需要使用compojure.route/resources路由和ring.middleware.resource/wrap-resource中间件,或者是否compojure.route/resources需要处理所有事情.

还是优化问题?在使用中,wrap-resource避免使用组件路由开销?任何见解将不胜感激.

clojure compojure ring

1
推荐指数
1
解决办法
3907
查看次数

Compojure/Ring Routing错误:参数#错误

下面详细说明的路线设置会导致错误:Wrong number of args (0) passed to: PersistentArrayMap任何人都可以帮我理解这个错误以及如何解决它?

(defn sign-in [req]
  ({:status 200 :body "hello world" :headers {"content-type" "text/plain"}})) 

(defroutes paths
  (GET "/connect" {} connect-socket)
  (POST "/sign-in" {} sign-in)
  (route/resources "/")
  (route/not-found "Resource not found."))

(def app
  (-> (defaults/wrap-defaults #'paths defaults/api-defaults)
      wrap-json-params))
Run Code Online (Sandbox Code Playgroud)

clojure compojure ring aleph

1
推荐指数
1
解决办法
371
查看次数

使用 Clojure 的 Ring 提供静态资源

我正在学习如何使用 Clojure 的 Ring 创建网络应用程序。我正在尝试提供一个静态.html<link>文件,该文件通过其头部的标签包含对 .css 文件的引用。.css 文件与我尝试提供的 index.html 文件位于同一目录中,但是,未加载 .css 文件(我收到错误,状态代码为 500,原因短语为:

响应图为零

这是我的代码如下:

(defroutes approutes
  (GET "/" reqmap
    (resource-response "index.html")))


(def server (run-jetty #'approutes {:join? false, :port 3000}))
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?如何提供引用其他文件(.css、.js、.jpeg 等)的 html 文件?我有一些运气(虽然我不能完全解释为什么)wrap-resource在命名空间中使用 Ring 的中间件ring.middleware.resource,尽管该函数仅在请求映射匹配静态资源时使用(正如你所看到的,路由“/”与资源本身不匹配)。

谢谢。

clojure compojure ring

1
推荐指数
1
解决办法
3443
查看次数

每次保存都会重置响铃会话 (Compojure)

每次我在 Ring 项目中保存 Clojure 源文件时,会话都会重置。

请注意ring-sessionID。我在每个之前都保存了我的handler.clj文件:

2015-03-17 11:02:51,857 INFO  onelog.core: Starting :get / for 127.0.0.1 {"accept-encoding" "gzip, deflate, sdch", "cache-control" "max-age=0", "connection" "keep-alive", "user-agent" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36", "accept-language" "en-US,en;q=0.8", "accept" "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "host" "localhost:3000", "cookie" "ring-session=40575c9e-fbe9-4fd5-8624-d5e4ef9d98a9"}
2015-03-17 11:02:51,859 INFO  onelog.core: Finished :get / for 127.0.0.1 in (2 ms) Status: 404
2015-03-17 11:03:01,147 INFO  onelog.core: Starting :get / for 127.0.0.1 {"accept-encoding" "gzip, deflate, sdch", "cache-control" "max-age=0", "connection" "keep-alive", …
Run Code Online (Sandbox Code Playgroud)

clojure compojure ring

0
推荐指数
1
解决办法
320
查看次数

在clojure上保存状态

我现在开始进行函数式编程,而且在没有变量的情况下工作变得非常疯狂.

我读过的每个教程都说它不是很酷的重新定义变量,但我不知道如何在不保存变量状态的情况下解决我的实际问题.

例如:我正在研究API,我希望在请求中保留值.让我们说我有一个端点,添加一个person,我有一个列表persons,我想redefine或改变我的persons列表添加新的值person.我怎样才能做到这一点?

可以使用var-set,alter-var-root或者conj!

(对于api我正在使用compojure-api,每个person都是一个Hash)

clojure compojure ring compojure-api

0
推荐指数
1
解决办法
303
查看次数

标签 统计

clojure ×5

compojure ×5

ring ×5

aleph ×1

compojure-api ×1