问题标签 [compojure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
731 浏览

clojure - 从列表中创建 Compojure 路由

我最近一直在玩 Compojure,并且我有一个小的基本 web 应用程序。对于我的 HTML 模板,我使用的是 Enlive,并且我有一个包含所有简单静态页面的名称空间。这些页面的 defroute 调用如下所示:

我实际上还有更多,但这应该可以让我知道我在做什么。

现在,我想,这实际上只是我的一堆重复,所以我想我会尝试以下方法:

当然,这是行不通的,因为 map 返回的是惰性序列,而不是函数体 (?)。有人知道我需要做什么才能让这个想法发挥作用吗?

还是我应该使用完全不同的方法来减少重复自己?

0 投票
2 回答
1374 浏览

google-app-engine - Google App Engine 中 Sandbar 或 Ring 会话的简单示例

我正在尝试研究如何让会话和闪存在 Google App Engine 中工作。有人可以使用环或沙洲提供一个明确的例子吗?我想我有沙洲工作,特别是它没有告诉我,Var sandbar.stateful-session/sandbar-flash is unbound当我转储处理程序时,我得到了:flash:session虽然我不确定那是沙洲会话还是环形会话。为了完整起见,我会提到我正在使用最新版本的 appengine-magic、ring、hiccup 和 sandbar。似乎没有任何不兼容或问题。

因此,最好使用flash-put!, flash-get, session-put! and session-get.

0 投票
4 回答
9728 浏览

clojure - Compojure POST 请求中缺少表单参数

我在以下 Compojure 示例中获取表单参数时遇到问题:

提交表单时,输出始终为

而且我无法弄清楚为什么 title 参数不在 params 映射中。

我正在使用 Compojure 0.6.2。

0 投票
3 回答
266 浏览

html - 在哪里可以找到 compojure.html?

我刚刚开始尝试使用 compojure,我想使用我在几个 compojure 示例中找到的语法创建 HTML 输出:

但是我使用的是 compojure 0.6.2,似乎这种语法不包含在 compojure 核心中。

我怎样才能将它包含在我的项目中?

0 投票
2 回答
1451 浏览

http - 如何使用 Compojure 生成修改后的 http 标头?

我正在尝试提高客户端从我的 Compojure 网络服务器获取页面的性能。我们使用 提供一堆静态文件(JS、CSS)(compojure.route/resources "/"),它在文件系统上查找文件,将它们转换为 URL,然后将它们作为流提供给 Ring。通过转换为流,它似乎丢失了所有文件元数据,例如 mod 时间。

我可以包装静态资源处理程序并添加一个ExpiresorCache-Control: max-age标头,但这会阻止客户端发送任何请求。有用,但这些文件有时会更改(当我们发布版本时)。

理想情况下,我希望客户端在一个小时内信任自己的缓存版本,并If-Modified-Since在该小时过去后发出带有标头的请求。然后我们可以返回304 Not Modified,客户端避免下载几百公斤的 javascript。

看起来我可以Last-Modified在提供响应时设置一个标头,这会导致客户端使用If-Modified-Since标头限定后续请求。太好了,除了我必须重写大部分代码compojure.route/resources才能添加Last-Modified- 不难,但乏味 - 并发明更多代码来识别和响应If-Modified-Since标题。这不是一项艰巨的任务,但也不是一项简单的任务。

这是否已经存在于某个地方?我找不到它,但它似乎是一个足够普遍且足够大的任务,以至于现在有人会为它编写一个库。

0 投票
1 回答
417 浏览

java - “帮助亚瑟找到他的受限课程”或“我怎样才能让谷歌应用引擎开心”

我在这里使用的某个地方让java.rmi.server.UIDGAE 感到不安。在 :only'ing 我对骨头的依赖之后,我陷入了僵局。

我可以将它加载到码头并且它工作正常,在将它加载到 dev-appserver 之后我得到了这个:

ps:这是我的 project.clj 以防这有帮助:

0 投票
1 回答
858 浏览

clojure - 奇怪的 lein uberwar 行为

我正在lein uberwar为我的测试 webapp 执行,我收到以下奇怪的错误:

servlet.clj 包含以下内容:

test.routes 文件包含:

奇怪的是,如果我替换这条线

和:

并打电话

在 servlet.clj 中,WAR 编译良好,并且在 tomcat 中完美运行。我的代码中是否有一些我看不到的错误?为什么我需要调用 test.routes/... 而不仅仅是 routes/...?

0 投票
5 回答
3173 浏览

frameworks - 面向设计师/前端开发人员的 Clojure Web 框架

我看到的所有流行的 Clojure Web 框架都使用 Hiccup 来生成 HTML。与从模板中解析语法的其他框架相比,我发现前端设计人员很难适应打嗝。

有没有不需要前端开发人员学习 LISP 的 clojure web 框架?

0 投票
3 回答
1855 浏览

clojure - 如何使码头服务器(ring.adapter.jetty)可以从外部主机访问

我正在尝试使用以下调用运行 Web 服务器

(run-jetty #'handler {:host "hostname" :port 8080})

这将启动一个服务器,我可以从同一主机访问该服务器,但不能从外部访问。我在 EC2 实例上执行此操作,我使用该机器的内部 IP 作为“主机名”,端口 8080 对外部访问开放。我也尝试使用“0.0.0.0”作为主机名,但这导致了相同的行为。

我正在使用稍微过时的 ring-jetty-adapter (0.2.5) 版本,但我无法改变它。

任何帮助是极大的赞赏!

0 投票
2 回答
424 浏览

google-app-engine - 在 appengine-magic 0.4.3/Compojure 0.6.4 中获取 POST 和 GET http 参数的问题

我在使用最新的 appengine-magic/compojure 版本捕获 POST 和 GET 参数时遇到了一些严重问题。参数总是显示为空白,即使请求对象中显然包含正确的内容。

我在互联网上看到了一些关于 Compojure 协议更改的内容,您必须手动放入包装器。我已经尝试过了(使用处理程序/api 包装器来避免处理程序/站点包装器中破坏 GAE 的东西),但它仍然不起作用。

我在这里做错了什么?

我的 project.clj 文件:

我的 core.clj 文件: