我正在使用catnip / leiningen试图学习Clojure ...所以我有一个简单的网站,现在我想在我的页面中添加一个clojure脚本。
所以我举了一个简单的例子,但现在却陷入了如何从我的网站访问我的脚本的问题。
我的project.clj
(defproject hello-world "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.4.0"]
[compojure "1.1.5"]
[hiccup "1.0.2"]]
:plugins [[lein-ring "0.8.2"]]
:cljsbuild {:builds
[{:source-path "src"
:compiler
{:output-to "resources/public/cljs/main.js"
:output-dir "resources/public/cljs"
:optimizations :simple
:pretty-print true}}]}
:ring {:handler hello-world.handler/app}
:profiles
{:dev {:dependencies [[ring-mock "0.1.3"]]}})
handler.clj的相关部分
(defn header [title]
(html
[:head
[:title title]
[:script "/cljs/play.js"]]))
如果我运行lein ring服务器,则http://localhost:8080/resources/public/cljs/main.js
没有任何内容。如何映射js的请求,以便我的网站可以找到它们?
答案 0 :(得分:1)
问题出在[:script] -tag中,需要重写为:
[:script {:src "/cljs/main.js"}]
或
(include-js "/cljs/main.js")
生成javascript文件的正确链接。
答案 1 :(得分:0)
您的JavaScript文件应该可以在http://localhost:8080/cljs/main.js
而不是http://localhost:8080/resources/public/cljs/main.js
下访问。你的实际代码看起来还不错。
您是否运行lein cljsbuild once
并在/resources/public/cljs/
下创建了一个JavaScript文件?