问题标签 [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 回答
1623 浏览

utf-8 - clojure 和 ring: 响应中的 utf-8 是“?”

我惊讶地发现我的戒指应用程序没有正确地提供 utf-8。我把它简化为一个简单的测试用例,有谁知道如何确保它总是将 utf-8 返回到浏览器?

在 project.clj 中(使用 lein-ring 插件):

在终端:

---> ɮѪϴ(这是错误的,应该是ɮѪϴ)

最好是一种适用于 tomcat 的方法,因为这是部署应用程序的地方。

谢谢!

0 投票
2 回答
958 浏览

clojure - 如何在 Ring 处理程序中打印到 REPL 窗口?

println似乎在处理程序中不起作用。如何写入 REPL 窗口?

我正在逆时针使用日食。

编辑:这看起来像nrepl 问题(future (println "foo"))很好,但没有输出(.start (Thread. #(println "foo")))

0 投票
1 回答
203 浏览

clojure - clojure / ring 中的 servlet 集成安全性?

我一直在寻找一种在环形 Web 应用程序中利用现有 servlet 容器的集成安全性的好方法。看起来人们正试图用他们自己的环形中间件重新发明轮子来处理身份验证/授权。

我希望看到像环形中间件这样公开领域配置和一些安全约束的东西。就像是:

然后是一个宏来包装允许限制某些角色的处理程序

在这里考虑一个 lein-ring 扩展。

外面有这样的东西吗?谷歌搜索在这里没有帮助

0 投票
1 回答
2162 浏览

clojure - 如何在环项目中运行任意启动功能?

我有一个我目前运行的组合/环应用程序lein ring server,我想编译为 .war 以便我可以部署它。然而,我有一个定义,就像

这会阻止 .war 的编译和生成。为了避免这种情况,我考虑过将调用转移到启动函数,但是当服务器启动时我将如何调用它呢?

如果我将调用放在处理程序中,我最终会遇到与以前相同的问题。

谢谢!

0 投票
1 回答
178 浏览

clojure - 重新加载处理显式加载的源文件的中间件

Ring 带有中间件“重新加载”(https://github.com/ring-clojure/ring/blob/master/ring-devel/src/ring/middleware/reload.clj)。它基于 ns-tracker (https://github.com/weavejester/ns-tracker)。ns-tracker 在源目录中查找可能以 ns 形式开头的源文件。它根据这些 ns 表单中包含的信息构建依赖关系图。这当然可以完美地工作,但仅适用于 ns 表单中明确包含的依赖项。

Clojure 中有一个习惯用法,命名空间被分成几个文件。有一个定义命名空间的源文件(使用 ns 形式)。该文件可以包含任意数量的顶级表单,但特别是将包括负载,通常在顶级但我认为不一定。加载的文件以 in-ns 形式开始。这并不像您想象的那样晦涩难懂……clojure.core 使用它。

这些加载文件的内容本身并不构成模块,也不一定被强制成为模块(循环依赖等)。

ns-tracker 不扫描源文件以查找负载表达式,也不查找 in-ns 表单。原因很清楚。但这确实打乱了我的工作流程,因为对已加载文件的更改显然不会重新加载命名空间。

有谁知道是否有一个库可以处理显式加载的源文件?如果没有什么我会一起破解一些东西(可能通过在负载周围编写一些丑陋的宏)并使其公开可用。

0 投票
1 回答
345 浏览

http - Clojure Noir:如何仅为应用程序的一部分设置基本身份验证

我已经使用Ring Basic Authentication为我的应用程序设置了 HTTP Basic 身份验证。它工作得很好,看起来像这样:

认证?是我自己的功能实现。现在我只想将应用程序的一部分配置为进行基本身份验证,而将其他部分配置为公开。我知道这可以用 Ring(和 Compojure)来完成,所以它必须可以用基于 Ring 的 Noir 来完成。我只是不太确定如何应用该示例以适应 Noir,因为它使用路线,我不知道如何才能到达 Noir 中的那些。有任何想法吗?

0 投票
3 回答
2217 浏览

session - 在 clojure/ring 中,如何删除 cookie?

假设我想删除一个 cookie(例如 ring 的 session cookie):

制作这样的响应图:

似乎工作,但感觉有点hacky。

有没有一种干净的方法来删除它?

0 投票
1 回答
218 浏览

clojure - 将 webapp 前端添加到现有的 clojure 应用程序

我有一个基于 Clojure 的聊天机器人,我以典型的 leiningen 方式启动它lein run。我想为这个应用程序添加一个前端,但不完全确定如何去做。通过阅读有关 compojure、lib-noir 和 ring 的文档,看起来标准的服务方式是使用lein ring server. 如果可能的话,我宁愿只用一个 lein 命令启动应用程序和前端。这是否涉及使用类似的东西手动启动服务器(可能在另一个线程中)(run-jetty handler {:port 3000}),或者有人可以推荐更好的方法吗?

0 投票
0 回答
223 浏览

clojure - ring clojure 的目录浏览器中间件

是否有任何可用的 ring 中间件可以模仿像 apache 这样的标准文件服务器处理路由的方式

所以处理程序看起来像这样:

这与

但也会输出目录列表。

0 投票
1 回答
1987 浏览

clojure - 在 ring / compojure 中使用路由/文件与路由/资源

使用有什么区别 -

用于设置静态文件夹的根目录?

谢谢,穆尔塔萨