首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理不在“资源”中的Luminus中的html文件?

问如何处理不在“资源”中的Luminus中的html文件?
EN

Stack Overflow用户
提问于 2016-05-20 03:30:07
回答 1查看 359关注 0票数 1

我有这个:

代码语言:javascript
复制
(defn about-page []
    (layout/render "about.html" {:title "About"}))

但是,由于我已经将目录“模板”从“资源”移动到根目录,而且在服务器上,我可能会将其放在另一个位置,它无法工作。我这么做是因为我不希望html模板嵌入到输出jar中。那么,如何使代码工作,如何才能访问“模板”中的html文件呢?

对于静态图像,css,js也有同样的问题:我现在把它们放在根目录中,所以它们不在“资源”中。它们在“公共”文件夹里。但是,当我将它们称为"public/css/css1.css“时,就找不到它们了,也就是说,路径localhost:3000/public/css/css1.css不存在。

我怎样才能告诉鲁米努斯我的静力学现在在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-20 04:22:20

模板定位

Selmer的文档描述了如何更改模板的位置

默认情况下,模板位于相对于ClassLoader URL的位置。如果您想为模板设置自定义位置,可以使用selmer.parser/ set -resource!要做到这一点: (selmer.parer/set-resource!) 还可以在相对于应用程序资源路径的位置设置根模板路径: (设置资源路径!(clojure.java.io/resource“META/foo/templates”) 这允许使用包含和扩展标记重新定义模板,而不必指定完整的路径。 若要将资源路径重置为默认路径,只需将其传递为零: 解析器/集合-资源-路径!(零) 然后,应用程序将在此位置查找模板。如果您将应用程序部署为jar,并且希望能够修改HTML而不必重新部署它,这将是非常有用的。

当您希望在更改模板时重新加载模板时,您还应该记住Selmer缓存它们:

在呈现文件时,Selmer将缓存已编译的模板。如果文件的上一次修改时间戳发生更改,将触发重新编译。注意,模板引用的文件中的更改不会触发重新编译。这意味着,如果模板扩展或包含其他模板,则必须触摸正在呈现的文件,以使更改生效。 或者,您可以分别使用(selmer.parser/cache-on!)和(selmer.parser/cache-off!)打开和关闭缓存。

资产定位

静态资源的处理是使用site-defaults在<app>.middleware命名空间中配置的。您需要将其“:static条目”配置为使用:files:

代码语言:javascript
复制
(-> site-defaults
  (assoc :static {:files "/var/www/html"}))

您需要将文件从resources/public目录复制到该位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37337470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档