0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 964 Просмотров
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Странный суффикс у JS и CSS
« : 18.03.2020, 16:47:12 »
Здравствуйте!
Обнаружил, что у всех CSS и JS послу URL имеется суффикс.
Например, нормальная ссылка
https://site/templates/template/css/style.css
Но в коде она такая
https://site/templates/template/css/style.css?f641f919511acea450ec5672cd29b8d2

Кто это может делать?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #1 : 18.03.2020, 17:06:25 »
Это id media version
Это нужно для того что бы после редактирования файла или обновления Joomla  старые файлы не грузились из кеша браузера - а именно с сервера !!
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #2 : 18.03.2020, 17:53:04 »
Это id media version
Это нужно для того что бы после редактирования файла или обновления Joomla  старые файлы не грузились из кеша браузера - а именно с сервера !!

Ну я редактирую файл - hash не меняется.
В этом и проблема.
Браузер упорно грузит старую версию файла.
Но хуже всего то, что у меня еще есть CDN, который кеширует статику и сами HTML файлы.

Это можно как-то отключить?
*

Sgrey

  • Захожу иногда
  • 75
  • 4 / 1
Re: Странный суффикс у JS и CSS
« Ответ #3 : 18.03.2020, 21:15:05 »
И не будет меняться, поскольку он обновляется только при обновлении Joomla. Отключить можно.
Код
$doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/style.css', array('version' => ''));
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #4 : 18.03.2020, 21:19:47 »
Цитировать
И не будет меняться, поскольку он обновляется только при обновлении Joomla. Отключить можно.
Там еще можно как то так :
где xxxx-yyyy-rrrr - ID новой версии (может ошибся где то в буквах ) - Нет я  проверил!
Код
$doc->setMediaVersion('xxxx-yyyy-rrrr') ; 
Мне кажется это более правильный вариант !!!
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #5 : 18.03.2020, 22:07:15 »
Тогда странно другое - некоторые CSS файлы не имеют hash.
Например - /components/com_flexicontent/librairies/fancybox/dist/jquery.fancybox.min.css

И странно, почему они не сделали параметр в общих настройках Joomla для отключения этой опции.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #6 : 18.03.2020, 22:16:11 »
Цитировать
/components/com_flexicontent/librairies/fancybox/dist/jquery.fancybox.min.css
Ну это значит что в этом компоненте он просто подключается без всяких HASH  Что не совсем правильно! (((
Советую . Вам не не отключать эту штуку ! - Так как потом при обновлении - могут быть очень крутые баги!
Правильно что бы оно было !
И собственно - а чем оно вам мешает ?
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #7 : 18.03.2020, 22:20:40 »
И собственно - а чем оно вам мешает ?

С CDN проблемы были. Сейчас вроде наладил процесс.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #8 : 18.03.2020, 22:25:26 »
А понятно !  ;D
Хорошего Вечера ! Берегите себя !
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #9 : 19.03.2020, 00:00:51 »
Я вообще пытаюсь увеличить скорость загрузки.
По умолчанию очень много хлама грузится на frontend.
Использовал расширение для Chrome - CCS Used - получил только тот CSS, что используется на нужных страницах..
Убрал все CSS всех расширений и загружаю только то, что реально используется.
Отключаю CSS и JS с помощью плагина JS CSS Control.
Таким образом убил 90% стилей CSS и 50% JS.
Для мобильных надеюсь будет прирост в скорости, для декстопов и так было быстро, разницу не ощутил, но у меня канал 100Мб.
А вот для мобильных середнячков еще и на 3G должно сработать.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #10 : 19.03.2020, 00:11:31 »
Цитировать
Я вообще пытаюсь увеличить скорость загрузки.
Ну тогда - Вы забыли или не знали - про такой тег - отложного рендинга <template />
Почитайте - просто можно очень много блоков спрятать в него - и оно будет лежать на странице !
К примеру - footer -
И когда User - прокрутит - ну скажем пол страницы - Вы достаете  из <template /> весь footer - вставляете его на его место ... и вот footer готов  ! (а то в друг юзер до футера и не докрутит за всю свою жизнь - а Вы ему все равно стили загрузили !  ^-^ )

Также тогда это даст возможность сразу после того как вы вставили footer из <template /> на страницу - и если там будут link`s - на CSS файлы - они будут тут же загружены - тоже и для Javascript!
Век Живи - Век Учись !  ;D
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #11 : 19.03.2020, 00:35:21 »
Также тогда это даст возможность сразу после того как вы вставили footer из <template /> на страницу - и если там будут link`s - на CSS файлы - они будут тут же загружены - тоже и для Javascript!

А робот ПС тоже не увидит footer?
Как это сканируется?
Ведь так можно пол страницы спрятать до прокрутки, но как отреагирует ПС на это?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #12 : 19.03.2020, 00:52:13 »
Цитировать
но как отреагирует ПС
Нормально - Мы проверяли !!
Да можно пол страницы - и потом по блокам вытягивать - и ренлерить !
ПС - для него это обычный тег такой как тег <i /> или <b />
Но когда браузер видит этот тег он просто пропустит как будто внутри него не чего и нет - а значит для этого блока не будут применяться стили и прочее для того что бы это отобразить !
 
*

Sgrey

  • Захожу иногда
  • 75
  • 4 / 1
Re: Странный суффикс у JS и CSS
« Ответ #13 : 19.03.2020, 11:48:42 »
Там еще можно как то так :
где xxxx-yyyy-rrrr - ID новой версии (может ошибся где то в буквах ) - Нет я  проверил!
Код
$doc->setMediaVersion('xxxx-yyyy-rrrr') ; 
Мне кажется это более правильный вариант !


Смотря какая задача. Ваш вариант работает глобально, мой для отдельного файла.
Только что такое 'xxxx-yyyy-rrrr'? Чтобы убрать вывод вроде должно быть так.
Код
 $doc->setMediaVersion(''); 

Советую . Вам не не отключать эту штуку ! - Так как потом при обновлении - могут быть очень крутые баги!

Можно пояснить, почему могут быть баги? Я считал, что оно используется только чтобы сообщить браузеру, что файлы изменились.
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Re: Странный суффикс у JS и CSS
« Ответ #14 : 19.03.2020, 16:20:36 »
Еще такой вопрос.
Page Speed ругается - Устраните ресурсы, блокирующие отображение
на файл media/jui/js/jquery.min.js
Он хочет, чтобы я добавил атрибуты defer, async или перенес из <head>

1. Как понять, кто грузит файл?
2. Как добавить атрибуты?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Странный суффикс у JS и CSS
« Ответ #15 : 19.03.2020, 20:01:07 »
Цитировать
Page Speed ругается - Устраните ресурсы, блокирующие отображение
Да его нужно убрать из <head />
но он должен загружаться первым из всех Js файлов ...
Цитировать
Он хочет, чтобы я добавил атрибуты defer, async
Да - ему нужно добавить attr - defer
Цитировать
1. Как понять, кто грузит файл?
Та в принципе Вам это не обязательно знать! )))
В Joomla - для системных плагинов есть такое событие onBeforeCompileHead
Если создать системный плагин (или уже в существующем - к примеру plg_system_sef ) - создать метод с именем onBeforeCompileHead
И в нем получить данные
Код
$doc = JFactory::getDocument();
То можно легко оперировать файлами которые будут грузится в<head />

Цитировать
2. Как добавить атрибуты?
Если хотите при  добавлении файла в <head /> То так
Код
/**
* @param   array   $options  Array of options. Example: array('version' => 'auto', 'conditional' => 'lt IE 9')
* @param   array   $attribs  Array of attributes. Example: array('id' => 'scriptid', 'async' => 'async', 'data-test' => 1)
*/
$doc->addScript('/plugins/system/starcache/assets/js/starCaheWatcher.js' , ['version' => 'auto'] , ['async' => 'async'  ] ) ;
Если файл ужу в  $doc то точно так же. - Данные о загружаемых ресурсах в $doc хранятся в виде массива - ключом  является Url -  Этого файла!
Ну или так - на прямую
Код
# Добавить событие  onload
$doc->_scripts['/plugins/system/starcache/assets/js/starCaheWatcher.js']['onload'] = '(function(){initWatcher()})()' ;



« Последнее редактирование: 19.03.2020, 20:06:08 от gartes »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как скопировать стиль позиции или узнать его суффикс?

Автор Юрий777

Ответов: 5
Просмотров: 1255
Последний ответ 25.06.2021, 09:26:01
от Юрий777
Редирект с слеш на суффикс html проблема главной страницы мультиязычного сайта

Автор Evgenii_web

Ответов: 1
Просмотров: 808
Последний ответ 02.03.2019, 09:46:58
от Evgenii_web
Не могу зайти в панель управления из за 301 редиректа на суффикс html

Автор Evgenii_web

Ответов: 11
Просмотров: 700
Последний ответ 27.02.2019, 15:23:26
от Evgenii_web
Перестало работать Перенаправление URL и Добавлять суффикс к URL

Автор Gosha5767

Ответов: 3
Просмотров: 849
Последний ответ 04.02.2018, 23:18:29
от Gosha5767
Странный глюк

Автор slavin99

Ответов: 3
Просмотров: 746
Последний ответ 29.11.2016, 15:21:13
от MosTender