Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2020, 15:55
Аспирант
Отправить личное сообщение для TheSanches Посмотреть профиль Найти все сообщения от TheSanches
 
Регистрация: 21.01.2018
Сообщений: 78

Кеширование, версия css файла
Здравствуйте, подскажите пожалуйста, приемлемо ли использовать следующий код, для избежания кеширования файла css
<script>
	document.write('<link href="/style.css?v='+Math.random()+'" rel="stylesheet" type="text/css">');
</script>

Какие плюсы и минусы данного подхода, и какие есть альтернативы, если этот подход неверный?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2020, 16:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Достаточно просто - /style.css?метка. А вообще, лучше это делать на сервере, подставляя в качестве метки время последнего изменения файла. Если проект предполагает добавления в будущем, то возможны изменения, и тогда придется бороться с кешировнием.
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2020, 16:21
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Вопрос - зачем это нужно.
Кеширование помогает снизить время загрузки и ускоряет открытие страницы. Так, что каждый раз считывать файл не следует.
Если в рабочий сайт вносится изменение, то лучше менять имя css файла, с добавлением номера версии вручную.
Например
<link href="/style.2.1.3.css'" rel="stylesheet" type="text/css">
Можно и так
<link href="/style.css?v=2.1.3'" rel="stylesheet" type="text/css">

Во время разработки лучше всегда открывать страницы с отладчиком, в котором можно запретить кеширование.
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2020, 16:31
Аспирант
Отправить личное сообщение для TheSanches Посмотреть профиль Найти все сообщения от TheSanches
 
Регистрация: 21.01.2018
Сообщений: 78

Данный файл содержит в себе импорты кучи других css файлов, так как над проектом работают ряд верстальщиков, каждый в своем файле, и после каких то изменений, все это собирается в главном файле.

В итоге на рабочем проекте часто не обновляются стили, а делать ctrl+F5, не совсем удобно, особенно обычному юзеру.
@import 'global.css' all;
@import 'alexandr.css' all;
@import 'andrey.css' all;

@import 'olga.css' all;
@import 'media.css' all;
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2020, 16:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Занимайтесь этим на сервере, не клиента это забота, есть время последнего изменения файл, да и eTag есть.
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2020, 16:39
Аспирант
Отправить личное сообщение для TheSanches Посмотреть профиль Найти все сообщения от TheSanches
 
Регистрация: 21.01.2018
Сообщений: 78

Спасибо
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2020, 16:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Время последнего доступа, тут имеется ввиду заголовок Last-modified, а к нему уже прицепом eTag.
Ответить с цитированием
  #8 (permalink)  
Старый 10.08.2020, 16:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

О кеше и как работает eTag написано много, например тут. Являюсь подписчиком Хабра, была недавно статья еще об одном применении eTag, интересно.
Ответить с цитированием
  #9 (permalink)  
Старый 10.08.2020, 18:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

А файлы указанные в @import не кешируются?
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2020, 12:45
Аспирант
Отправить личное сообщение для TheSanches Посмотреть профиль Найти все сообщения от TheSanches
 
Регистрация: 21.01.2018
Сообщений: 78

Хороший вопрос, об этом я не подумал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение параметра из CSS файла Grendel Общие вопросы Javascript 3 20.07.2016 08:20
изменение файла css с помощью js Chimmi Общие вопросы Javascript 3 28.05.2015 11:09
Подключение внешних таблиц из css файла chippolino (X)HTML/CSS 14 30.04.2010 12:36
Как получить атрибут из CSS файла ? sionus Events/DOM/Window 1 04.01.2010 09:39
Подключение CSS файла SAA Серверные языки и технологии 1 22.09.2009 13:09