enliveでソースフォルダの外部からテンプレートを提供することは可能ですか?
src/templatesフォルダーではなくresources/public / templatesフォルダーからテンプレートを取得したいのですが、どうすればよいですか?
ありがとう、ムルタザ
テンプレートを含むフォルダーをクラスパスに含めてみましたか。enliveはクラスパスを調べて、指定したテンプレートを見つけると思います。
resources / publicフォルダーがすでにクラスパスにある場合、テンプレートパスは次のようになります
(deftemplate template-name "templates / path / to / template" [] .....)
すべてのテンプレートをクラスパス上ではなくファイルに入れ、次のように定義します。
(defmacro deftemplate- [name source & rest]
`(deftemplate ~name (java.io/File. (str "path-to-pages/" ~source)) ~@rest ) )
はい、ソースフォルダの外部からテンプレートを提供することは可能ですか。私の場合、構成を変更せずに機能しました。テンプレートがに./resources
あり、静的アセットがにあり./resources/public
ます。
注:私は自分の中で以下を使用していますproject.clj
:min-lein-version "2.0.0"
:plugins [[lein-ring "0.8.3"]]
:dependencies [[org.clojure/clojure "1.5.1"]
[compojure "1.1.5"]
[enlive/enlive "1.1.1"]]
私は./resources/index.html
このように言及します:
(h/deftemplate index-template "index.html"
[s]
[:title] (h/content s))