将整个Smarty模板包装在{strip}标签中有什么问题吗?

时间:2010-08-10 00:18:03

标签: php html smarty minify

我希望我的模板保持整洁,并且非常有意,但我们希望只向浏览器提供非常紧凑的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}

它闻起来有点不专业,但我无法想出更好的东西 一个缺点肯定是你必须在这些标签中包装你的每一个模板。

我很高兴得到纠正,并希望听到不同的方法来保持交付的代码紧凑。

3 个答案:

答案 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会忽略包含。一天免费提示。 : - )