0

我正在使用 catnip/leiningen 来尝试学习 Clojure ......所以我有一个简单的网站,现在我想在我的页面中添加一个 clojure 脚本。

所以我举了一个简单的例子,但现在被困在如何从我的网站访问我的脚本上。

我的项目.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 server,则http://localhost:8080/resources/public/cljs/main.js. 如何映射对 js 的请求以便我的站点可以找到它们?

4

2 回答 2

1

问题出在 [:script]-tag 中,需要重写为:

[:script {:src "/cljs/main.js"}]

或者

(include-js "/cljs/main.js")

生成指向 javascript 文件的正确链接。

于 2013-02-14T08:04:08.417 回答
0

您的 JavaScript 文件应该可以在http://localhost:8080/cljs/main.jsnot下访问http://localhost:8080/resources/public/cljs/main.js。否则,您的实际代码看起来还可以。

您是否运行lein cljsbuild once并在 下创建了一个 JavaScript 文件/resources/public/cljs/

于 2013-02-13T11:54:21.953 回答