加载脚本

系统可以从三个地方加载 FreeMarker 脚本,加载顺序如下:

  1. Web 应用程序的文件系统。您可以将脚本文件放在 /<CATALINA_HOME>/webapps/<contextPath>/templates 文件夹。
  2. templates 工作区。模板需先被使能才可以使用。
  3. Web 应用程序的类路径(classpath),这也是默认存放 STK 模板的地方。一个最佳实践是,在模块 JAR 里打包脚本(为方便系统找到,模块 JAR 在类路径里)。

模板加载器

FreeMarker 模板加载器在配置应用的 /server/rendering/freemarker/jcr 和 /webapp 里配置:

需要的话您也可以编写您自己定制的模板加载器。

节点名

 
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 从内容库中加载模板。

 

在内容库里编辑模板脚本对评估、制造原型或较小的项目比较理想。然而,这不利于长期维护,所以不要在生产环境中这样做。我们强烈建议您在一个版本控制系统中储存脚本,并将它们打包进一个项目模块。

 

更多信息请参考 模板样例 > 编辑模板脚本

  • No labels