Кеширование, версия css файла
Здравствуйте, подскажите пожалуйста, приемлемо ли использовать следующий код, для избежания кеширования файла css
<script> document.write('<link href="/style.css?v='+Math.random()+'" rel="stylesheet" type="text/css">'); </script> Какие плюсы и минусы данного подхода, и какие есть альтернативы, если этот подход неверный? Спасибо! |
Достаточно просто - /style.css?метка. А вообще, лучше это делать на сервере, подставляя в качестве метки время последнего изменения файла. Если проект предполагает добавления в будущем, то возможны изменения, и тогда придется бороться с кешировнием.
|
Вопрос - зачем это нужно.
Кеширование помогает снизить время загрузки и ускоряет открытие страницы. Так, что каждый раз считывать файл не следует. Если в рабочий сайт вносится изменение, то лучше менять имя 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"> Во время разработки лучше всегда открывать страницы с отладчиком, в котором можно запретить кеширование. |
Данный файл содержит в себе импорты кучи других css файлов, так как над проектом работают ряд верстальщиков, каждый в своем файле, и после каких то изменений, все это собирается в главном файле.
В итоге на рабочем проекте часто не обновляются стили, а делать ctrl+F5, не совсем удобно, особенно обычному юзеру. @import 'global.css' all; @import 'alexandr.css' all; @import 'andrey.css' all; @import 'olga.css' all; @import 'media.css' all; |
Занимайтесь этим на сервере, не клиента это забота, есть время последнего изменения файл, да и eTag есть.
|
Спасибо
|
Время последнего доступа, тут имеется ввиду заголовок Last-modified, а к нему уже прицепом eTag.
|
О кеше и как работает eTag написано много, например тут. Являюсь подписчиком Хабра, была недавно статья еще об одном применении eTag, интересно.
|
А файлы указанные в @import не кешируются?
|
Хороший вопрос, об этом я не подумал.
|
Часовой пояс GMT +3, время: 16:12. |