9

Javascript リソースをリング アプリケーションに統合するにはどうすればよいですか?

具体的には:

  • .js ファイルをどこに置くか?
  • 単体テストはどこでどのように設定する必要がありますか?
  • クライアント側とサーバー側を横断する機能の受け入れテストをセットアップする最良の方法は何ですか?

リング アプリケーションでの JavaScript のベスト プラクティスはありますか? 考えられる答えの 1 つは、クライアント側とサーバー側を完全に別々に開発し、本質的にすべてを 2 つの別々のプロジェクトに分離することですが、私はその考えに完全に満足していません。

(私は clojurescript も認識していますが、javascript として記述された javascript コードを主に考えています。)

4

4 に答える 4

1

ring.middleware.fileRing は、フォルダー (またはring.middleware.static私が使用するもの) または jar/war 内のリソースから直接ファイルを提供することをサポートしています。最善の策は、これらのメカニズムを使用して静的 (JavaScript/画像) コンテンツを提供することです。/static/これを行う自由がある場合は、このようなフォルダーからのすべての HTTP 要求を処理するために、次のようなルートを設定します。

(def *route*
    (ring/wrap-static "c:/statics/" ["/static/"]))

静的リソース (javascript リソースなど) の要求を処理する方法がわかれば、PHP や ASP などの他のものと同じです。

もう 1 つの方法は、リソース ルートを通常どおりに定義し、「キャッチオール」 (通常はこの(ring/GET * request (handle-static-request request))ルートのようなもの) で、残りのサービスされていないリクエストを静的リクエストで処理することです。

于 2011-03-17T15:11:29.243 に答える
0

手早く始めるには、おそらく clojure/ring 開発環境で静的ファイルの提供を開始する最も簡単な方法は、ring.util.response/file-response を使用することです。

mustache を使用する場合、次のようなルートをルート リストの最後に追加できます (フォールスルー ルートとして):

[&] (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" のようなファイルがあることを確認します。

http://mmcgrana.github.com/ring/ring.util.response.htmlを参照してください。

于 2012-04-20T09:51:32.927 に答える
-6

私は Clojure Web の専門家ではありませんが、やってみます。

使用するテンプレート言語に関する Ring とは何の関係もないと思います。

テンプレート言語

  • Enlive: すべてを (分離されたプロジェクトではなく) 適切に分離し、enlive でまとめます。
  • Fleet: PHP などでそれを行う方法です。
  • しゃっくり: インライン html を使用して clojure 関数を記述し、js は sepret ファイルに大きな js ライブラリしかありません。

テストについては、あまり語ることはできません。

于 2011-03-16T10:53:15.693 に答える