在多个 freemarker 模板中使用常量
Using a constant in multiple freemarker templates
我正在使用 Freemarker 模板生成 HTML。我在几个模板中重复了这一行:
<link href="/css/main.css?v=${css_version}" rel="stylesheet">
我希望能够为 css_version 指定一次值,并在我的所有模板中使用它。我该怎么做?
可能是这样的:
Configuration cfg ...
...
cfg.setSharedVariable("css_version", "1.2.3");
请注意,您应该在设置单例 Configuration
实例的地方执行此操作,稍后调用 setSharedVariable
不是线程安全的。因此,如果 css_version
必须在不重新创建 Configuration
的情况下进行更改,那么只需使用自定义 TemplateScalarModel
实现来代替 String
,该实现从某个线程安全源读取版本号。 (也就是说,就模板而言,共享值的值可以随时间变化,即使实际的共享变量对象没有被替换。)
我正在使用 Freemarker 模板生成 HTML。我在几个模板中重复了这一行:
<link href="/css/main.css?v=${css_version}" rel="stylesheet">
我希望能够为 css_version 指定一次值,并在我的所有模板中使用它。我该怎么做?
可能是这样的:
Configuration cfg ...
...
cfg.setSharedVariable("css_version", "1.2.3");
请注意,您应该在设置单例 Configuration
实例的地方执行此操作,稍后调用 setSharedVariable
不是线程安全的。因此,如果 css_version
必须在不重新创建 Configuration
的情况下进行更改,那么只需使用自定义 TemplateScalarModel
实现来代替 String
,该实现从某个线程安全源读取版本号。 (也就是说,就模板而言,共享值的值可以随时间变化,即使实际的共享变量对象没有被替换。)