问题标签 [ring]

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 投票
1 回答
1527 浏览

clojure - 在 Compojure 中为路由设置上下文路径

我正在构建一个由两个 Clojure 项目组成的 Compojure webapp。第一个是用于可视化一些数据的 webapp,第二个是更复杂的应用程序,需要使用第一个。

我希望能够使用第二个项目中的run-jetty同时运行这两个应用程序。这将允许第二个 webapp 从第一个 webapp 调用 URL 以获取可视化。

我正在使用Compojure的上下文宏,这是第二个应用程序的路线:

这里是第一个应用程序的路线:

我有两个 main.js 文件。一个在firstproject/resources/public/js/app/main.js和一个 在 secondproject/resources/public/js/app/main.js

当我浏览 url localhost:8080/first/app/js/main.js 时,我得到了第二个项目的 main.js。为什么?

0 投票
1 回答
497 浏览

clojure - 没有码头的环/组合

我知道可以使用 创建一个战争文件lein ring war,但它似乎仍然包含码头依赖项。当我构建战争(并在tomcat上部署)时,有没有办法排除码头依赖关系?

如果我根本无法做到这一点,或者只是打包到战争中但从未实际使用过的额外 jars/class 文件?

0 投票
3 回答
1344 浏览

clojure - 如何区分 Compojure/Ring 中的 html 与 xhr/xml/json 请求?

如何区分 Compojure/Ring 中的 html 与 xhr/xml/json 请求,类似于 Rails 中的 respond_to?

http://apidock.com/rails/ActionController/MimeResponds/respond_to

0 投票
2 回答
269 浏览

clojure - 我将如何使用 Clojure 及其 Web 框架实现类似于 Rails 的 url_for 的功能?

我正在使用 Clojure 开发一个 Web 应用程序,目前使用的是RingMustacheSandbarHiccup。我有一个名为job的资源,以及一个以多步骤形式显示特定步骤的路径,用于定义这样的特定作业(为简单起见,省略了其他路径):

在我的控制器呈现的视图中,有指向同一作业中其他步骤的链接。目前,这些 url 是手工构建的,例如(str "/job/" id step). 我不喜欢"/job/"url 的硬编码部分,因为它重复了我在 mustache 路由中定义的内容;如果我改变路线,我需要改变我的控制器,这是一个比我关心的更紧密的耦合。

我知道 Rails 的路由系统有从参数生成 url 的方法,我希望我有类似的功能,即我希望我有一个url-for可以这样调用的函数:

有没有一个 Clojure Web 框架可以让这变得简单?如果没有,您对如何实现这一点有何想法?

0 投票
3 回答
4334 浏览

clojure - How to convert map to URL query string in Clojure/Compojure/Ring?

In Clojure / Compojure, how do I convert a map to a URL query string?

to

Is there any utility method to do this in compojure?

0 投票
1 回答
420 浏览

clojure - clojure/lein/ring:我有两个环处理程序做不同的事情,我如何将它包装到一个 servlet 中?

我有一个 clojure/ring 项目,它有两个不同的应用程序/处理程序在不同的端口上运行(一个用于 api,一个用于 Web 前端)。它们共享大量代码,但每个都有自己的命名空间,在其中完成特定于该接口的所有工作。现在我想将它部署为在 tomcat 或类似的东西中运行的 servlet(实际上它需要在任何 servlet 容器中工作)。不过我遇到了麻烦,因为 lein-ring 似乎假设 servlet 中只有一个处理程序。例如,在我的 project.clj 我有这一行:

这对 api 来说很棒,但是现在前端呢?我是否需要创建另一个包含这个的项目,以便它可以拥有自己的处理程序和 servlet?servlet 是否总是在一个端口上运行?

基本上有两件事我不确定:我不是来自 java 背景,所以我不确定 servlet 方法发生了什么以及它有什么限制,我不清楚 clojure 究竟是如何转化为servlet 范式足以以一般方式构建该项目。

任何帮助表示赞赏,谢谢!

0 投票
2 回答
1271 浏览

clojure - 在生产 ring-clojure 服务器上重新加载代码

在不重新启动整个 JVM 的情况下将新代码推送到生产环服务器的最佳方法是什么?

目前我在生产中使用 wrap-reload ,但这对我来说不太适用,因为有时我想在环开始使用新代码处理请求之前在 repl 中运行命令(例如进行数据库迁移)。还有各种博客和教程说不要在生产中使用 wrap-reload,尽管我不明白为什么不这样做。

我提出了以下解决方案,但我承认我对幕后发生的事情没有深入的了解。我想知道我是否可以让这样做的人进行健全性检查。这种技术看起来合理吗?

这个想法是有一个路径 (/admin/reload-clj) 导致所有 clojure 代码被重新加载。

0 投票
1 回答
559 浏览

jar - clojure/lein:我可以为 lein 指定一个项目文件而不是 project.clj 吗?

我想从一个项目中生成几个不同的 jar。我想我可以为每个文件制作一个 project.clj 文件,但我不能将它们全部命名为 project.clj。我如何告诉 lein 使用除 project.clj 之外的另一个项目文件?或者有没有另一种方法来生成罐子或启动

例如,对于同一目录中的许多不同的项目文件?

谢谢!

0 投票
2 回答
3632 浏览

clojure - clojure/ring/jetty:我正在使用 > lein ring 服务器。如何配置实例化的码头实例?

当我直接调用码头处理程序时,我能够像这样传递一个配置器:

我必须这样做,因为我在发布时不断收到 FULL HEAD 错误。现在我重构了直接使用 > lein ring server 的东西,它是从命令行调用的。

这使用了我的 project.clj 中指定的一些配置:

这很好用,但现在我又遇到了 FULL HEAD 问题。所以我尝试在那里添加一个配置器:

这个堆栈跟踪失败了:

我认为这与将函数直接放在地图中有关,因此我在项目外部(在 caribou.api.core 中)定义了它,并尝试像在其他地方定义的其余函数一样引用它:

这会启动应用程序,但我在发布时仍然收到 413: FULL HEAD 错误。有任何想法吗?谢谢!

0 投票
1 回答
365 浏览

session - 为什么要使用内存中的会话存储而不是加密的 cookie 会话存储

我正在阅读:

https://github.com/mmcgrana/ring/wiki/Sessions

所以现在我想知道:为什么我要使用内存中的会话存储而不是加密的 cookie 会话存储?

似乎后者(1)不会浪费服务器内存,并且(2)可以比内存存储更长时间。

因此,我的问题是:为什么/何时我想使用内存存储?

谢谢!