2016-09-12 5 views
0

Я пытаюсь сделать мои ссылки css встроенными (для оптимизации скорости). Вот пример с чистым PHP:Как преобразовать все ссылки css в встроенные стили с помощью оптимизации smarty - seo

echo '<style>'; 
foreach ($module_css_files as $css_lib) { 
    include(DIR_FS_ROOT. 'htdocs/css/' . $css_lib); 
} //foreach 
echo '</style>'; 

Но в Smarty эта идея не работает - когда я пытаюсь

{include file="mysite/htdocs/style.css" } 

каждый раз, когда умник не возвращают белый экран без ошибки в журнале PHP. Если попытаться включить обычный .tpl или небольшой файл javascript, это не проблема, но если попробуйте с помощью css smarty просто разбился. Пожалуйста помоги!

+0

Вы обнаружили ошибку в журнале ошибок? – Guglie

+0

Не журнал, ничего только белый экран – Pavel

ответ

1

Есть несколько возможных объяснений:

В зависимости от конфигурации, Smarty может пытаться генерировать обработанный файл в HTDOCS/CSS/templates_c. Если папка не существует или не доступен для записи, что приведет к ошибке

Smarty будет пытаться разобрать CSS в качестве шаблона Smarty, поэтому есть

.test {overflow:hidden} 

также приводит к ошибке. Вы можете попробовать следующее:

надстройку {буквального} к вашей CSS между комментариями, так что не нарушает файл CSS, если вы хотите назвать это вместо того, чтобы использовать его рядный:

/*{literal}*/ 
.test {overflow:hidden} 
... 

/*{/literal}*/ 

или, если вы используете Smarty 3, вы можете просто убедитесь, что есть по крайней мере один пробел после каждой открывающей скобки так умник не путает его с инструкцией шаблона

.test { overflow:hidden} 

лучшим вариантом, однако, было бы прочитайте содержимое файла css с помощью php и передайте их в smarty как переменную, чтобы избежать ненужное время обработки, которое может потребоваться для чтения и анализа CSS в качестве шаблона.

+0

Да, я сделал эту работу таким образом - прочитайте содержимое файла css с помощью php и передайте их в smarty как переменную – Pavel