我希望我的模板保持整洁,并且非常有意,但我们希望只向浏览器提供非常紧凑的HTML。
错过了一个更好的主意,我想知道将整个Smarty模板包装在{strip}
标签中是否有问题?
{strip}
<div class="albums">
<h2>Alle Foto-Alben</h2>
<ul class="photos clearfix">
{foreach $albums as $album}
{if $album->publishedPhotos|count > 0}
<li>
<div>
<a href="album.php?id={$album->id}">
<img src="{$album->titlepic->thumb}" alt="{$album->titlepic->title}" />
<span class="title">{$album->title}</span>
<span class="counter">{$album->publishedPhotos|count} Foto{if $album->publishedPhotos|count != 1}s{/if}</span>
</a>
</div>
</li>
{/if}
{/foreach}
</ul>
</div>
{/strip}
它闻起来有点不专业,但我无法想出更好的东西 一个缺点肯定是你必须在这些标签中包装你的每一个模板。
我很高兴得到纠正,并希望听到不同的方法来保持交付的代码紧凑。
答案 0 :(得分:5)
虽然没有错,但我会建议使用预过滤器。预过滤器仅在模板编译时运行(因此它不会减慢服务器的速度),并且您不需要在{strip}中包装每个模板。以下行代码来自我正在处理的项目。它有效地剥离了大部分空白。
/* Minify the html */
function smarty_pre_minify($tpl_source, $smarty) { return preg_replace('/[ \t\n\r]+/s', ' ', $tpl_source); }
$smarty->registerFilter('pre', 'smarty_pre_minify');
答案 1 :(得分:1)
不,这没什么不对。
在页眉/页脚模板对中进行,而不是单独包装每个页面。
或者,您可以在PHP方面触发剥离。
答案 2 :(得分:1)
注意: Striptags会忽略包含。一天免费提示。 : - )