Точка кеша css файла очищается после загрузки новой версии на сервер - PullRequest
1 голос
/ 24 ноября 2010

привет, у меня маленькая проблема

я загрузил новую версию моего сайта. и некоторые пользователи жаловались, что они видят какую-то страницу, которую я изменил очень, очень неправильно.

в любом случае после обновления они видят это нормально.

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

он должен знать, что файл css изменился или нет?

заранее спасибо

Ответы [ 4 ]

5 голосов
/ 24 ноября 2010

@ Метод UpTheCreek будет работать нормально. Но вы можете избежать некоторых проблем, просто изменив вызов и не меняя имя файла.

screen.css?v=12

Это также приведет к перезагрузке, но вам потребуется только изменить вызов.

1 голос
/ 24 ноября 2010

он должен знать, что файл CSS изменен не он?

Не обязательно. Если ваши css файлы были отправлены с сервера с директивой max-age и / или датой истечения срока давности в будущем, браузер получит указание не делать условных запросов к вашему ресурсу (см. http://developer.yahoo.com/blogs/ydn/posts/2007/05/high_performanc_2/), поэтому они учитывают ресурс в кеше все еще действителен.

В этом случае для принудительного создания нового запроса вам может потребоваться переименовать файл или добавить случайную строку запроса, например file.css?848372034, или, что еще лучше, примечание к версии, например file.css?v=1

0 голосов
/ 26 ноября 2010

Если вы используете Apache, попробуйте добавить это в свой корневой каталог .htaccess:

<FilesMatch ".(css|jpg|gif|ico|jpeg|png|html)$"> 
ExpiresActive On 
Header set Expires "Mon, 22 Nov 2010 06:00:00 GMT" 
</FilesMatch> [L]

Включить только те типы файлов, которые вы не хотите кэшировать, например:

<FilesMatch ".(css|js)$">

Если вы знаете, когда хотите изменить файлы, установите будущую дату - ваш сайт будет работать быстрее, если эти файлы не обновляются регулярно.

Если срок действия не установлен, браузеры кэшируют эти файлы пропорционально их возрасту.

0 голосов
/ 24 ноября 2010

Если вы устанавливаете панель инструментов веб-разработчика (для Firefox или IE), вы можете отключить кэш.Я использую это при разработке сайтов.Это избавляет вас от необходимости переименовывать CSS каждый раз, когда вы вносите незначительные изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...