文件资源

Smarty通常运行在内置的、基于文件系统的模板资源上。 默认资源是file:。 如果修改了 那么资源关键字就必须要指明。

如果找不到需要的模板文件,那么 $default_template_handler_func将会被调用。

在Smarty 3.1开始,除非开启了 配置,否则文件资源不会再搜索 include_path 的路径了。

$template_dir目录

Smarty从$template_dir设置的目录中, 获取模板文件资源。 多个模板目录将以在数组中的顺序进行搜索,在寻找到第一个匹配的模板时将返回。


Example 16.1. 使用$template_dir

  1. {include file='index.tpl'}
  2.  

Smarty 3.1 提供“归类符号”来定义$template_dir中的特定元素。 此特性可允许网站中使用和更好地管理多个模板集合。

“归类符号”可以用在任何定义了资源类型的地方。


Example 16.2. 特定的$template_dir

模板中调用

  1. {include file="file:foo.tpl"}
  2. {* 将载入 ./templates/foo.tpl *}
  3.  
  4. {include file="file:[1]foo.tpl"}
  5. {* 将载入 ./templates_2/foo.tpl *}
  6.  
  7. {* 将载入 ./templates_foo/foo.tpl *}
  8.  

任意目录的模板

在之外的模板, file:将需要使用绝对路径来获取模板。


Example 16.3. 任意目录的模板

模板中:

  1. {include file='file:/usr/local/share/templates/navigation.tpl'}
  2.  

Windows文件路径

如果使用Windows的机器,那么文件路径将以驱动盘符(C:)开头。 确保file:的路径避免命名空间冲突,达到需要的结果。


Example 16.4. 使用windows的文件路径

在模板中:

  1. {include file='file:D:/usr/local/share/templates/navigation.tpl'}
  2.