Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 15.12.2010, 11:44   #1
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
Question Как отключить compressor в 4.4+ и его последствия?

Недавно обновился на версию 4.4.4 с версии 4.3.8 и все ссылки на css и js моего шаблона приобрели вид /fileadmin/template/screen.css?1289786904 .
Подозреваю что это последствия работы compressor, хотя любой gzip в localconf.php отключен наглухо.
Такого вида "динамические" ссылки на тщательно вылизанный и пожатый мой собственный css категорически не устраивают хотя из-за того что вся статика заранее пожата gzip и отдается только через nginx, который ищет именно статически пожатые файлы, а такого вида ссылка вводит его в заблуждение и он заново жмет один и то же файл на лету.
Гугль ничего путного, за исключением правки класса pagerenderer, не посоветовал, поэтому обращаюсь тут к коллективному разуму.
Возможно ли как-то при помощи TS привести эти ссылки к прежнему виду без "динамической" составляющей?
Заранее признателен за любые советы.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 16.12.2010, 11:55   #2
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Залезаем в папку с распакованным новым ядром typo3 (у меня это typo3_src-4.4.4). Видим файл NEWS.txt - читаем. Этот файл рекомендуется читать при каждом обновлении ядра системы!
Видим:
Цитата:
* All CSS and JS files in the TYPO3 Backend are compressed now. This
means that they are added up to a single file without unnecessary
whitespace. This will reduce the count of requests drastically, which
eventually leads to faster loading and better performance.
CAUTION: If compressionLevel is configured
($TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] = 1 [1-9 for compression
level or TRUE for "enabled"]) the files will be served with gzip compression.
Be sure to enable / uncomment the needed configuration in your .htaccess file,
also found in misc/advanced.htaccess.

<FilesMatch "\.js\.gzip$">
AddType "text/javascript" .gzip
</FilesMatch>
<FilesMatch "\.css\.gzip$">
AddType "text/css" .gzip
</FilesMatch>
AddEncoding gzip .gzip

IMPORTANT: If you have any trouble accessing the Backend after upgrading
to TYPO3 4.4, make sure to clear the typo3temp/ directory manually or through
the TYPO3 install tool.
Что касается добавления ?1289786904 к файлам, то читаем далее:
Цитата:
* Automatic version-numbers of CSS and JS files to avoid caching problems:
This feature provides automatic numbering of CSS and JS files using the
files modified timestamp. This way the file reference will change when a
CSS or JS files is changed, and by this the browser and proxy will re-cache
the file. This feature can be configured to include the timestamp within the
filename (before .ext) or as a parameter to the file (default).
If versioning is done directly inside the filename (by setting
$TYPO3_CONF_VARS[BE][versionNumberInFilename] = TRUE) you need the
following line as the first rewrite rule in .htaccess:

# Rule for versioned static files (see $TYPO3_CONF_VARS[BE][versionNumberInFilename])
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]

IMPORTANT: This rule has to be the very first rule to work properly,
at least it has to be placed before the "^typo3..." rewrite rule
Developers can use this API for versioning of files in their own backend mods,
by calling t3lib_div::createVersionNumberedFilename or using the core API
for including files in the page renderer class.
Из всего этого следует, что сейчас поджимаются css и JS файлы внутреннего интерфейса.
К этим же файлам для внешнего интерфейса добавляется временной шаблон во избежание проблем с кешированием. То есть, если время сохранения файла изменилось на сервере, то и добавляемое число также меняется, при этом содержимое самого файла остается прежним. Это позволяет механизмам кеширования правильно обрабатывать измененные файлы - их название поменялось... Как-то так.

Последний раз редактировалось Андрей Аксенов; 16.12.2010 в 12:42
Андрей Аксенов вне форума   Ответить с цитированием
Старый 16.12.2010, 14:29   #3
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Отдельно отмечу что выдаются с этим самым timestamp выдаются мои собственные один раз и навсегда написанные css и js, а вот как раз стили того же CSC выдаются без timestamp. Точно так же хочу заметить что мои стили уже запакованы прекрасно работающей под любой *nix системой командой
Код:
find /www -type f -name '*.css' -exec gzip -9 '{}' \;
и мне соверщенно не нужно сжимать их каждый раз на лету gzip с участием nginx. Собственно потому и компилился nginx с gzip_static модулем.
Повторю вопрос - как эту "фичу" отключить не залезая в код ядра?
-=UncleByte=- вне форума   Ответить с цитированием
Старый 16.12.2010, 17:18   #4
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

В файле t3lib/config_default.php
написано про $TYPO3_CONF_VARS[FE][versionNumberInFilename]


'versionNumberInFilename' => 'querystring', // String. Allows to automatically include a version number (timestamp of the file) to referred CSS and JS filenames on the rendered page. This will make browsers and proxies reload the files if they change (thus avoiding caching issues). Set to 'embed' will have the timestamp embedded in the filename, ie. filename.1269312081.js. IMPORTANT: 'embed' requires this .htaccess rule to work: RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif)$ $1.$3 [L]. Set to 'querystring' (default setting) to append the version number as a query parameter (doesn't require mod_rewrite). Set to '' will turn this functionality off (behaves like TYPO3 < v4.4).


т.е. надо поставить в localconf.php
$TYPO3_CONF_VARS['FE']['versionNumberInFilename'] = '';
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 16.12.2010, 23:59   #5
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Так это просто поменяет отображение этих самых имен с вида file.js?timestamp на file.timestamp.js и это будет касаться только динамически создаваемых при генерации страницы самой typo3 стилей и скриптов.
Меня же волнует вопрос почему он этот самый querystring добавляет к моим файлам, которые, подчеркиваю, не меняются вовсе, и как эту ненужность отключить.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 17.12.2010, 12:02   #6
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Так это просто поменяет отображение этих самых имен с вида file.js?timestamp на file.timestamp.js и это будет касаться только динамически создаваемых при генерации страницы самой typo3 стилей и скриптов.
нет, будет file.js и file.css
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 17.12.2010, 12:24   #7
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Попробовал и включить и выключить этот параметр в InstallTool - влияет исключительно на отображение админки. Для фронтенда в обоих случаях выводит одно и то же:
Код:
<link rel="stylesheet" type="text/css" href="typo3temp/stylesheet_670d0f71b2.css?1291940230" media="all" />
<link rel="stylesheet" type="text/css" href="fileadmin/tmpl/screen.css?1292374803" media="screen" />
<link rel="stylesheet" type="text/css" href="fileadmin/tmpl/print.css?1163606366" media="print" />
<script src="typo3temp/javascript_93077bb238.js?1291906354" type="text/javascript"></script>
Похоже действительно придется лезть в ядро и отключать там.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 17.12.2010, 12:26   #8
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Ну если переключить на file.timestamp.js, а в настройках поставить:
PHP код:
$TYPO3_CONF_VARS['FE']['versionNumberInFilename'] = ''
.
То к названию файла будет прибавлятся это самое ''... То есть ничего...
А что касается ядра, то где и как, надо бы почитать в релизе, или в фордж, там наверняка есть, просто со временем сейчас туго...
Андрей Аксенов вне форума   Ответить с цитированием
Старый 17.12.2010, 12:51   #9
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Именно так и стоит в последнем варианте, результат тот же.
Если переключить в единицу, то ломается вид админки, потому что не прописана добавка в htaccess, а для фронтенда все остается по-прежнему.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 17.12.2010, 20:36   #10
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Исправляюсь - есть два параметра VersionNumberInFilename - один для бэкенда, второй для фронтенда. Соответственно если менять параметр для фронтенда как указал Валерий все работает как надо.
Вопрос решен. Спасибо.
-=UncleByte=- вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить кэш на стороне клиента? oxenbash Общие вопросы 0 15.12.2009 17:11
Как отключить default язык в BE, если перевод есть вначале только на дополнительный? oxenbash Общие вопросы 1 05.11.2009 18:46
Как отключить парсинг? Э HTMLArea, RTE, tinymce_rte и другие визуальные редакторы 10 12.05.2009 22:37
Как отключить кеш (config.no_cache) c0d3r Общие вопросы 2 22.12.2006 10:18
А КАК ЕГО СТАВИТЬ _ ТО С НУЛЯ????? Николай Установка 6 23.02.2006 14:56


Часовой пояс GMT +4, время: 13:59.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория