Перейти к содержимому


Фото
* * * * * 5 голосов

Вывод версии файла (CSS или JS)


  • Чтобы отвечать, сперва войдите на форум
8 ответов в теме

#1 ABSORBER

ABSORBER
  • Модератор
  • 382 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 08.12.2016 - 14:26

Для чего это нужно?
Как мы знаем, на серверах можно настроить кеширование (чтобы статичный файлы типа картинок, JS или CSS кешировались в браузере клиента на N срок. 
Но бывают ситуации когда разработчик активно администрирует сайт, и вносит правки в CSS или JS.

Представим ситуацию. На сервере настроено кеширование на 30 дней.

  • 20 числа я зашел на сайт, браузер закешировал CSS шаблона.

  • 24 числа разработчик внес измененеия в CSS.

  • 29 числа я опять зашел на сайт, и у меня грузится старый CSS, не новый.

А ведь изменения были сделаны! Как быть?

Исправляется это подстановкой в УРЛ пути к css или JS, версии.

Везде пишут так:

<link rel="stylesheet" href="http://sitename/desi...ss/adaptive.css">

А мы напишем вот так:

<link rel="stylesheet" href="http://sitename/desi...ss?v=1480333475">

И “о ЧУДО”, я захожу 29 числа, и у меня грузится CSS Новой версии. 
Так вот что бы автоматически уснанавливалась версия, надо писать так:

<link rel="stylesheet" href="design/{$settings->theme|escape}/css/adaptive.css?v={filemtime("design/{$settings->theme|escape}/css/adaptive.css")}">

Вот эта функция filemtime, возвращает время последнего изменения файла на сервере. Все просто smile.png

 

P.S. На гениальность не претендую, просто решение которым я недавно начал пользоваться, возможно кому-то будет полезно.



#2 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 120 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 08.12.2016 - 14:44

мне будет полезно. Спасибо большое!



#3 Noxter

Noxter
  • Пользователь
  • 5 711 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 08.12.2016 - 15:10

Чем хуже использовать {$smarty.now}?

#4 ABSORBER

ABSORBER
  • Модератор
  • 382 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 08.12.2016 - 16:17

Чем хуже использовать {$smarty.now}?

Тем что нам надо вывести последнее время изменения файла.

функция filemtime с этим успешно справляется. 

 

Приведите пример с {$smarty.now}



#5 Julius123

Julius123
  • Пользователь
  • 216 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 08.12.2016 - 17:02

Очень полезная штука. Спасибо.



#6 n1c

n1c
  • Пользователь
  • 170 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 26.01.2017 - 00:21

а почему летят стили? и если зайти в "http://sitename/desi...ss?v=1480333475" то все пусто



#7 ABSORBER

ABSORBER
  • Модератор
  • 382 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 26.01.2017 - 03:40

а почему летят стили? и если зайти в "http://sitename/desi...ss?v=1480333475" то все пусто

Ничего не должно лететь. 

Проверьте правильность пути до файла.



#8 mishanya

mishanya
  • Фрилансер
  • 2 355 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 26.01.2017 - 11:17

а почему летят стили? и если зайти в "sitename/design/css/adaptive.css?v=1480333475" то все пусто

 

у вас в ссылке как минимум не хватает после design/ названия темы


Изменено: mishanya, 26.01.2017 - 11:17


#9 n1c

n1c
  • Пользователь
  • 170 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 26.01.2017 - 11:34

Разобрался, у меня в .htaccess стояло сжатие css, убрал и заработало






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых