加载脚本
系统可以从三个地方加载 FreeMarker 脚本,加载顺序如下:
- Web 应用程序的文件系统。您可以将脚本文件放在
/<CATALINA_HOME>/webapps/<contextPath>/templates
文件夹。 templates
工作区。模板需先被使能才可以使用。- Web 应用程序的类路径(classpath),这也是默认存放 STK 模板的地方。一个最佳实践是,在模块 JAR 里打包脚本(为方便系统找到,模块 JAR 在类路径里)。
模板加载器
FreeMarker 模板加载器在配置应用的 /server/rendering/freemarker/jcr
和 /webapp
里配置:
LazyWebappTemplateLoader
默认从 webapp 文件夹里加载模板。如果没找到匹配的模板,则将会从类路径中加载。JcrRepoTemplateLoader
允许从内容库中加载模板。这个加载器在 原位模板工具 模块里。LazyFileTemplateLoader
允许从文件系统的任意位置加载模板。
需要的话您也可以编写您自己定制的模板加载器。
节点名 | 值 |
---|---|
server | |
filters | |
IPConfig | |
i18n | |
security | |
rendering | |
freemarker | |
templateLoaders | |
jcr | |
class | info.magnolia.module.inplacetemplating.JcrRepoTemplateLoader |
extension | .ftl |
workspace | templates |
webapp | |
class | info.magnolia.freemarker.loaders.LazyWebappTemplateLoader |
JSP 脚本由于在被绘制前需要服务器预编译,所以只能存在于文件系统中。JSP 脚本在模块安装或更新时被解压到文件系统。
编辑脚本
最佳实践
最好的方法是将脚本存储在您的项目模块里,这样脚本可以存储在一个版本控制系统,并且自动成为一个可控的软件开发周期的一部分。您可以在文件系统里用您喜爱的编辑器来编辑,支持语法高亮及其他特性等。
当您在开发时,在内容库里编辑脚本有时很有用,但这种方法只对 FreeMarker 脚本有效。如果您将脚本导入到 templates
工作区,它们就会在 STK > 模板 里可供使用。所有的 STK 脚本都遵循这个模式。您可以从以上的加载顺序看出,templates
工作区里的脚本会覆写从类路径里加载的脚本。所以脚本一旦被添加或修改,就需要选中使能模板复选框来强迫 Magnolia CMS 从内容库中加载模板。
在内容库里编辑模板脚本对评估、制造原型或较小的项目比较理想。然而,这不利于长期维护,所以不要在生产环境中这样做。我们强烈建议您在一个版本控制系统中储存脚本,并将它们打包进一个项目模块。
更多信息请参考 模板样例 > 编辑模板脚本。
Overview
Content Tools