我第一次使用 Mustache 2.7.0 并尝试使用阻止编译实时。
基本上,我打电话给 basic.mustache
{{< layout }}
{{$ title}}{{page.meta.name}}{{/ title}}
{{/ layout }}
调用块 layout.mustache
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>{{$ title}}test{{/ title}}</h1>
</body>
</html>
我看到 page.meta.name 的值出现在页面上,而不是 layout.mustache 中写的标签。
任何人都知道为什么?
PHP
$mustache = new Mustache_Engine(array(
'pragmas' => [Mustache_Engine::PRAGMA_BLOCKS],
'loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates'),
'partials_loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates/partials/')
));
$tpl = $mustache->loadTemplate('basic');
echo $tpl->render( $this );
答案 0 :(得分:5)
似乎partials_loader
不兼容与Pragma blocks
。
删除此行:
'partials_loader' => new Mustache_Loader_FilesystemLoader('htdocs/templates/partials/')
解决了我的问题。