Closed boctopr closed 8 years ago
А что у вас прописано в favicon.tpl?
А что у вас прописано в favicon.tpl? Теги прижатые к левому краю без отступов и пробелов.
<link rel="apple-touch-icon" sizes="57x57" href="{$path_favicon}apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="{$path_favicon}apple-touch-icon-60x60.png">
Скорее всего в скомпилированном php коде проставляются пробелы или переносы. Но не думаю, что это играет какую то роль при выводе в браузер.
Страдает чувство перфекционизма, а также ругаются всякие PageSpeed, YSlow то что файл html можно минифицировать на пару пару десятков байт (если проект большой)
Пример с багом
<!DOCTYPE html>
<html>
<head>
{include "favicon.tpl"}
</head>
<body>
</body>
</html>
Пример без бага
<!DOCTYPE html>
<html>
<head>
{include "favicon.tpl"}
</head>
<body>
</body>
</html>
На этом примере файл инклюдиться сразу за табом и происходит смещение, но это не единственная команда {foreach} и другие ведут себя также
Если невозможно(лень) исправить в архитектуре приложения, возможно ли сделать повторный strip компилированного шаблона?
На уровне шаблона можно попробовать так:
{filter|strip|replace:["\n","\t"]:""|strip}
...
{/filter}
Лучше конечно сжимать скомпилированный php код, но лучше уточнить у @bzick насколько это возможно.
Или на уровне кода сделать так:
$fenom->addPreFilter(function(\Fenom\Template $fenom, $str){
// Обработка строки
return $str;
});
Это реализовывает идею @pafnuty. Данный метод передаст строку с шаблоном на обработку до его компиляции. Или можно воспользоваться методом addPostFilter
, который даст возможность обработать код после компиляции.
html не соответствует шаблону, при выключенной опции AUTO_STRIP при замене {команд} образуются лишние отступы, при включенном режиме лишние пробелы
Пример: