madclouder Posted March 10, 2017 Share Posted March 10, 2017 Здравствуйте, Друзья! Возможно кто-то имеет мысли на сей счет. Родилась у меня идея, ради эксперимента скорее, встроить подгружаемый код JS и CSS непосредственно в страницу, во время её генерации на сервере, что-бы не терять время на подгрузку файлов знакомыми конструкциями: <link rel="stylesheet" href="/themes/…/f60_all.css" type="text/css" media="all" /> <script type="text/javascript" src="/themes/…8d2f.js"></script> Сделать это средствами Smarty проблематично, ибо он подгружает только.tpl по ссылке (или я не прав?).Значит остается только Апачевский SSI (mod_include).Подредактировав /classes/Media.php можно добиться генерации ссылок на файлы CSS и JS с путем относительно корня сайта, без домена, что и нужно для SSI virtual.Но хоть убей не работает на страницах код <!-- include virtual="/themes/…/f60_all.css"--> Причем модуль Апача mod_include точно активирован и работает. Если в корне сайта создать папку с файлом html и попробовать использовать SSI то работает прекрасно. Но не работает, если использовать в шаблонах PrestaShop.Есть у кого то мысли на сей счет?Возможно другое решение?Как на стадии формирования страницы вставить JS и CSS код по готовым ссылкам в тело HTML, что-бы сразу отдавать готовую страницу пользователю? Link to comment Share on other sites More sharing options...
madclouder Posted March 11, 2017 Author Share Posted March 11, 2017 Одно уточнение. Под "не работает" я подразумеваю то, что не срабатывает Апач. То есть в исходном коде страницы видно просто строчку include virtual="/themes/…/f60_all.css" Уже всю голову сломал. Может заголовки какие-то Преста посылает? Вроде не должно из-за этого. Файл .htaccess тоже не при чем. И код из него удалял, и по-всякому крутил. И из header.tpl/footer.tpl код весь удалял только кроме инклуда - безтолку. Link to comment Share on other sites More sharing options...
wagood Posted March 11, 2017 Share Posted March 11, 2017 SSI включать в php скрипт - какой в этом смысл? Link to comment Share on other sites More sharing options...
madclouder Posted March 11, 2017 Author Share Posted March 11, 2017 SSI включать в php скрипт - какой в этом смысл? Почему в php скрипт? Включаю именно вместо <link rel="stylesheet" href="/themes/…/f60_all.css" type="text/css" media="all" /> <script type="text/javascript" src="/themes/…8d2f.js"></script> В файле header.tpl в html. Include производится апачем перед выдачей страницы. {if isset($js_defer) && !$js_defer && isset($js_files) && isset($js_def)} {$js_def} {foreach from=$js_files item=js_uri} <script type="text/javascript"> <!--include virtual="{$js_uri}"--> </script> {/foreach} {/if} Link to comment Share on other sites More sharing options...
wagood Posted March 11, 2017 Share Posted March 11, 2017 это просто текст, он же не отдаётся сервером клиенту отдельно, он собирается php скриптом магазина, а потом отдаётся клиенту Link to comment Share on other sites More sharing options...
madclouder Posted March 11, 2017 Author Share Posted March 11, 2017 это просто текст, он же не отдаётся сервером клиенту отдельно, он собирается php скриптом магазина, а потом отдаётся клиенту Судя вашей логике кроме php вообще ничего не существует. Почитайте про SSI. Отношения к php модуль Апач include имеет очень отдаленное, если не сказать никакого. Именно Апач перед тем как отдать готовую страницу вставляет содержимое инклуда вместо конструкции <!--include virtual="/path/to/file"--> Link to comment Share on other sites More sharing options...
wagood Posted March 11, 2017 Share Posted March 11, 2017 это не моя логика, так мир устроен Link to comment Share on other sites More sharing options...
madclouder Posted March 11, 2017 Author Share Posted March 11, 2017 это не моя логика, так мир устроен Вы, уважаемый, потроллить решили? Нечего сказать - проходите мимо, "Помогальщик с Престашоп". По теме - решение могло бы быть неплохим, если бы не несколько "но", о которых я сразу не подумал. Я все же реализовал эту логику загрузки js/css кода из подгружаемых файлов в тело страницы (средствами php, SSI так и не заработал). Все работает хорошо, но получается, что клиент грузит каждый раз код с сервера, а не из кэша со своего компа. Отсюда все негативные вытекающие -> увеличение трафика, увеличение времени загрузки страницы и т.п. Велосипед изобрести не получилось) Тема исчерпана. Можно удалить. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now