Minify для HostCMS - объединение и сжатие скриптов и стилей

#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
для макета я решил, не надо указывать основного шаблона css? он его сам забирает и встраивает:
    <?php
        $styles = array(
      '/hostcmsfiles/style.css',
      '/hostcmsfiles/jquery/lightbox/css/jquery.lightbox.css',
      '/hostcmsfiles/jquery/autocomplete/styles.css');
        $styles = array_merge($styles, getCSS_path_for_current_templates());
        echo getLink($styles, 'css');  
    ?>

Теперь повтора нет.
А строчка которая получается при отключении отладочного режима - полез отключил отладку, и строчка все нормально, то есть это мешал двойной файл:
  <link rel="stylesheet" media="all" type="text/css" href="/min/index.php?f=/hostcmsfiles/style.css,/hostcmsfiles/jquery/lightbox/css/jquery.lightbox.css,/hostcmsfiles/jquery/autocomplete/styles.css,/templates/template1/style.css&amp;4580991348491477" />


То есть получается, что не нужно указывать файл css основного шаблона и все работает.
Спасибо за содействие, хорошая штука.
Никола Гусев
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
web-tool писал(а):
не надо указывать основного шаблона css? он его сам забирает и встраивает
Да, совершенно верно.
Я так и подумал что у вас ошибка именно из-за этого
Заказов не беру. Консультирую редко.
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
Спасибо, я просто что то это не прочитал, или не заметил. Спасибо еще раз, действительно хорошая штука. Я сделал её в сочетании с с асинхронной загрузкой ( http://code.google.com/p/extsrcjs/) того что особо сразу не требуется, вообще быстро получилось.
То есть у меня код такой сейчас, просто летает:

<!-- mini css  -->
<?php
        $styles = array(
      '/hostcmsfiles/style.css',
      '/hostcmsfiles/jquery/lightbox/css/jquery.lightbox.css',
      '/hostcmsfiles/jquery/autocomplete/styles.css');
        $styles = array_merge($styles, getCSS_path_for_current_templates());
        echo getLink($styles, 'css');  
    ?>

<!-- mini js -->
      
    <?php  
      $scripts = array(
      '/hostcmsfiles/jquery/jquery.js',
      '/hostcmsfiles/jquery/lightbox/js/jquery.lightbox.js',
      '/hostcmsfiles/jquery/autocomplete/jquery.autocomplete-min.js'
      );
      echo getLink($scripts, 'js');
      ?>   
      
<!-- asyncsrc http://code.google.com/p/extsrcjs/ -->

    <script src="/ext_js/extsrc/extsrc-min.js"></script>
       <script type="text/javascript" asyncsrcsrc="/templates/template1/hostcms.js"></script>
      <script type="text/javascript" asyncsrcsrc="/hostcmsfiles/ajax/ajax.js"></script>
      <script type="text/javascript" asyncsrcsrc="/hostcmsfiles/ajax/JsHttpRequest.js"></script>
      <script type="text/javascript" asyncsrcsrc="/hostcmsfiles/jquery/jquery.validate.js"></script>
<!-- extsrc -->
        <script type="text/javascript" extsrcsrc="/hostcmsfiles/main.js"></script>


Ну еще вообще не нужные скрипты в футере тоже через asyncsrc, типо счетчики ,реформал и прочая бяка.
      
Никола Гусев
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
web-tool, во-1х, я, по меньшей мере, сделал бы так:
<!-- mini js -->
   
   <?php  
   $scripts = array(
      '/hostcmsfiles/jquery/jquery.js',
      '/hostcmsfiles/jquery/lightbox/js/jquery.lightbox.js',
      '/hostcmsfiles/jquery/autocomplete/jquery.autocomplete-min.js',
      '/ext_js/extsrc/extsrc-min.js'
   );
   echo getLink($scripts, 'js');
   ?>
Зачем грузить extsrc-min.js отдельным http-вызовом?

А во-2х, я вообще не вижу смысла в extsrcjs. Абсолютно такого же эффекта можно достичь, если перечислить в $scripts все используемые скрипты, а строку
echo getLink($scripts, 'js');
поместить в самом конце макета, перед _закрывающим_ тегом <body>. Но, в отличие от extsrcjs (который, все-таки, является по сути костылем), этот эффект будет достигнут совершенно нативным способом.

Ну и в-3х, если уж заморачиваться на счет еще большей оптимизации скриптов, то имеет смысл сразу писать их с так называемой "ленивой" загрузкой, и подтягивать их с сервера только тогда и только там, где они действительно нужны.

Как-то так.
Заказов не беру. Консультирую редко.
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
Спасибо. Писать сам - я не умею))
Никола Гусев
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
web-tool, пичалька
Заказов не беру. Консультирую редко.
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
Сегодня заметил в журнале
Предупреждение: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for ..../templates/template49/style.css в файле .../min/hostcms6_svc.php (строка 133)
Стек вызовов:
Файл: min/hostcms6_svc.php, строка 133,
Файл: min/hostcms6_svc.php, строка 84,
Файл: min/hostcms6_svc.php, строка 50,
Файл: templates/template1/template.htm, строка 16,
Файл: modules/template/model.php, строка 73,
Файл: modules/core/page.php, строка 100,
Файл: modules/core/command/controller/default.php, строка 363,
Файл: modules/core/command/controller/hostcms5/default.php, строка 97,
Файл: modules/core/router/route.php, строка 168,
Файл: index.php, строка 209

undefined, 25.09.2012 00:05:31


Боролся так - взял создал пустой style.css и положил во все template.. где не было своих стилей, в некоторых лежали созданые css, но пустые )

Я кстати последовал вашему совету, убрал эту фичу от гугла, сделал сжатие всех скриптов.

А вот на втором сайте, он на халяве не могу подключить ругается на 26 строку ( $files = to_array($files) в
hostcms6_svc.php, там из начально версия халява , но уже сразу 6.
Fatal error: Call to undefined function to_array() in /var/www/../min/hostcms6_svc.php on line 26

Файлы все проверил, присутствуют.
Код вызова:
    <?php  
      $scripts = array(
      'hostcmsfiles/jquery/jquery.js',
      'templates/template1/hostcms.js',
      'hostcmsfiles/ajax/ajax.js',
      'hostcmsfiles/ajax/JsHttpRequest.js',
      'hostcmsfiles/main.js',
           'hostcmsfiles/jquery/lightbox/js/jquery.lightbox.js',
                'hostcmsfiles/jquery/jquery.validate.js',
      'hostcmsfiles/jquery/bbedit/jquery.bbedit.js',
      'hostcmsfiles/jquery/stars/jquery.ui.core.js',
           'hostcmsfiles/jquery/stars/jquery.ui.widget.js'
             'hostcmsfiles/jquery/stars/jquery.ui.stars.js'
      );
      echo getLink($scripts, 'js');
      ?>   
Никола Гусев
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
web-tool, спасибо за багрепорт, обе ошибки исправлены.
Скачайте последнюю версию пакета по ссылке https://bitbucket.org/JamesKotov/google-minify-for-hostcms-v.5/get/tip.zip
распакуйте, и закачайте на хостинг обновленный файл /min/hostcms6_svc.php
Заказов не беру. Консультирую редко.
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
)))рад что хоть как тестер  пригодился.
Никола Гусев
#
Re: Minify для HostCMS - объединение и сжатие скриптов и стилей
у меня проблема на 5 версии. min проверено скопирован из другого моего рабочего сайта одного и того же хостера.
require_once(CMS_FOLDER . "min/hostcms_svc.php"; - прописан.
Все отлично работает на денвере, но после обновления в сети получаю ошибку minify.

исходный код страницы выглядит нормально:
   <link rel="stylesheet" media="all" type="text/css" href="/min/index.php?f=templates/template1/style.css,hostcmsfiles/style.css,highslide/highslide.css,hostcmsfiles/jquery/jquery-ui/css/redmond/jquery-ui-1.8.4.custom.css,hostcmsfiles/jquery/jquery-ui/base.css,hostcmsfiles/jquery/lightbox/css/jquery.lightbox.css&amp;62409291371939012" />
   

   <script type="text/javascript" src="/min/index.php?f=hostcmsfiles/jquery/jquery.js,hostcmsfiles/jquery/jquery.validate.js,hostcmsfiles/jquery/lightbox/js/jquery.lightbox.js,templates/template1/hostcms.js,hostcmsfiles/ajax/JsHttpRequest.js,hostcmsfiles/ajax/ajax.js,hostcmsfiles/main.js,hostcmsfiles/jquery/bbedit/jquery.bbedit.js,hostcmsfiles/jquery/custom-leo.js,hostcmsfiles/jquery/jquery-1-83.min.js,hostcmsfiles/jquery/jquery.fixheadertable.min.js,hostcmsfiles/jquery/jquery-ui-1.10.3.custom.min.js&amp;1228512181371938555"></script>

но ссылки не работают, при проверке вижу вот это:
Warning: require(Minify.php) [function.require]: failed to open stream: No such file or directory in /var/www/u3837369/data/www/pr220.ru/min/index.php on line 18

Warning: require(Minify.php) [function.require]: failed to open stream: No such file or directory in /var/www/u3837369/data/www/pr220.ru/min/index.php on line 18

Fatal error: require() [function.require]: Failed opening required 'Minify.php' (include_path='/var/www/u3837369/data/www/pr220.ru/min/lib:.:') in /var/www/u3837369/data/www/pr220.ru/min/index.php on line 18
   
www.energoprofi23.ru
Авторизация