0

Clojureを学習するためにcatnip/leiningenを使用しています...簡単なWebサイトがあり、ページに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"]]))

私がラインリングサーバーを実行している場合、には何もありませんhttp://localhost:8080/resources/public/cljs/main.js。私のサイトがそれらを見つけることができるようにjsのリクエストをマップする方法は?

4

2 に答える 2

1

問題は[:script]タグにあり、次のいずれかに書き換える必要があります。

[: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 に答える