【发布时间】:2011-07-27 12:29:08
【问题描述】:
注意
鉴于这个 OP 是大约两年前写的,我不想再问同样的问题,我想知道是否存在分步说明,以便我可以将 Noir 或其他 Clojure Web 应用程序集成到 Apache ,无论是 Jetty、Tomcat 还是其他。 Django 也有类似的说明,我想我理解 Python 在 Django 的情况下是作为引擎而不是环框架运行的,因此 Clojure Web 应用程序的情况更加复杂。
尾注
我深深爱上了 Clojure,Compojure 看起来像是一个简洁的 Web 框架。
但是当我想将我的应用程序部署在像 Tomcat 这样的常规应用程序服务器上作为 WAR 时,一切都崩溃了。实际上,我必须为静态文件和资源编写自定义 Ring 处理程序,这些处理程序可以在本地 Jetty 和 Tomcat 上工作,因为股票处理程序没有,而且我必须手动在任何地方添加上下文根。
我很惊讶我必须编写所有这些代码来创建可以在 Jetty 和 Tomcat 上运行的最简单的 Web 应用程序。我对此只有三种可能的解释:
- 没有人将 Clojure/Compojure 用于除使用 Jetty 进行本地开发(即生产中)以外的任何事情
- 每个人都在没有上下文根的专用 Jetty 上部署 Clojure/Compojure 应用程序(就像人们使用 Node.js 应用程序一样)
- 有一种非常简单的方法可以规避我遇到的我不知道的问题
您认为哪些情况属于这种情况?还是别的什么?
编辑:
请注意,使用 Maven/Leiningen 创建一个战争文件是轻而易举的事,而不是我的意思。我想知道我必须编写这么多代码才能使 Compojure 与 Tomcat 一起工作,基本的东西,如静态文件服务和上下文根感知,应该开箱即用。
【问题讨论】:
-
+1 我真的很想知道这个问题的结果。
-
我的答案所附的蛋糕项目模板解决了从 Jetty 为开发 和 Tomcat 提供应用程序所涉及的问题。
标签: deployment clojure war compojure