模板位置
Selmer 的文档描述了如何更改模板的位置:
默认情况下,模板位于相对于 ClassLoader URL 的位置。如果您想为模板设置自定义位置,可以使用 selmer.parser/set-resource-path!要做到这一点:
(selmer.parser/set-resource-path! "/var/html/templates/")
也可以在相对于应用程序资源路径的位置设置根模板路径:
(set-resource-path! (clojure.java.io/resource "META-INF/foo/templates"))
这允许使用 include 和 extends 标签重新引用模板,而无需指定完整路径。
要将资源路径重置为默认值,只需传递一个 nil:
(selmer.parser/set-resource-path! nil)
然后应用程序将在此位置查找模板。如果您将应用程序部署为 jar 并且希望能够修改 HTML 而无需重新部署它,这将非常有用。
由于您希望在更改模板时重新加载模板,您还应该记住 Selmer 缓存它们:
当渲染文件时,Selmer 会缓存编译后的模板。如果文件的最后修改时间戳发生变化,将触发重新编译。请注意,模板引用的文件的更改不会触发重新编译。这意味着如果您的模板扩展或包含其他模板,您必须触摸正在呈现的文件才能使更改生效。
(selmer.parser/cache-on!)
或者,您可以分别使用和打开和关闭缓存
(selmer.parser/cache-off!)
。
资产位置
静态资源的处理是site-defaults
在您的<app>.middleware
命名空间中配置的。您需要配置它的:static
条目以:files
代替使用:
(-> site-defaults
(assoc :static {:files "/var/www/html"}))
并且您需要将文件从resources/public
目录复制到该位置。