如何将Javascript资源最佳地集成到环形应用程序中?
具体做法是:
对于环形应用程序的javascript有什么最佳做法吗?一个可能的答案是完全单独开发客户端和服务器端,基本上将所有内容分成两个独立的项目,但我对这个想法并不完全满意。
(我也知道clojurescript,虽然我主要考虑的是javscript代码,这些代码都是用javascript编写的。)
答案 0 :(得分:1)
Ring支持直接从文件夹(ring.middleware.file
或ring.middleware.static
这是我将使用的)或jar / war中的资源提供文件。您最好的选择是使用这些机制来提供静态(javascript /图像)内容。如果您可以自由地执行此操作,我将放置一条类似于此路径的路径,以便从/static/
这样的文件夹中提供所有HTTP请求:
(def *route*
(ring/wrap-static "c:/statics/" ["/static/"]))
一旦你知道如何处理静态资源的请求(比如javascript资源),它就像PHP或ASP一样。
另一种方法是按照正常情况定义资源路由,然后在“catch-all”(通常类似于此(ring/GET * request (handle-static-request request))
路由)中,使用静态请求处理任何剩余的未服务请求。
答案 1 :(得分:0)
要快速入门,在clojure / ring开发环境中开始提供静态文件的最简单方法可能是使用ring.util.response / file-response。
如果您使用小胡子,可以在路线列表的末尾添加这样的路线(作为直通路线):
[&] (fn [req] (file-response (req :uri) {:root "resources/public"}))
它将选择任何路线并尝试在" [proj-root] / resources / public"下找到与提供的uri相匹配的文件。 。目录
在您的html脚本标记中,您可以使用,例如src="/js/all.js"
,然后确保您拥有这样的文件" [proj-root] / resources / public / js / all。 JS"
答案 2 :(得分:-1)
我会选择“彻底分离关注点”的路径。您的服务器端clojure代码只会公开json服务,您的javascript将查询数据并将其附加到html。 Clojure使您可以轻松创建此类服务并将其数据结构转换为json。 然而,这种方法有它的缺点,你将严重依赖于javascript。
答案 3 :(得分:-6)
我不是一个clojure网络专家,但我会试一试。
我认为Ring与你使用的模板语言没什么关系。
模板语言
我真的不能谈论测试。