Умное решение для истекающих заголовков - PullRequest
1 голос
/ 05 мая 2011

Мы хотим установить заголовки expires для используемых изображений, css и javascript, чтобы улучшить скорость страниц, но мы знаем о проблеме caching при модификации скриптов css или js.

Можно ли добавить мета или другой тег в файл, который загружает xhtml, который сообщает браузеру обновить каждый элемент, независимо от того, какое кэширование установлено на существующих изображениях, css или js?

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Насколько я знаю, такого ярлыка нет.

И даже если бы это было - какой в ​​этом смысл?Отправка такого заголовка в первую очередь потеряет цель будущего срока действия заголовка.

При настройке заголовков срока действия необходимо добавить к своим элементам какое-либо управление версиями актива, например <link rel="stylesheet" href="css/style.css?v=2">

. Изменение пути к активу приведет к достижению той же цели.

Да, это хлопоты.Но аннулирование кэша - сложная проблема , на самом деле простого пути не существует.

2 голосов
/ 05 мая 2011

Что вы, вероятно, хотите сделать, это версия вашего статического контента.скажем, у вас есть файл main.css, затем вы можете изменить его версию, переименовав его в main_0.css (просто пример), а затем вы установите срок действия кэша на год.если вам когда-нибудь понадобится обновить main.css, просто увеличьте номер версии и обновите ваши ссылки.Тогда все клиенты получат последнюю версию.

Есть несколько решений, которые могут сделать это для вас, но это основной принцип.

Я всегда считал эти ресурсы очень полезными, когдаИмея вопросы, связанные с кэшем:

  1. http://code.google.com/intl/no/speed/page-speed/docs/caching.html
  2. http://code.google.com/intl/no/speed/page-speed/docs/filters.html

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

Вот решение для управления версиями (mod_pagespeed), которое делает то, что я объяснил выше:

  1. http://code.google.com/intl/no/speed/page-speed/docs/filter-cache-extend.html
1 голос
/ 05 мая 2011

Можно ли добавить мета или другой тег в файл, который загружает xhtml, который сообщает браузеру обновить каждый элемент, независимо от того, какое кэширование установлено на существующих изображениях, css или js?

Не настолько, насколько я знаю.

Мы хотим установить заголовки expires для используемых изображений, css и javascript, чтобы улучшить скорость страниц

Это хорошая вещь, на мой взгляд.

но мы знаем о проблеме caching при изменении скрипта css или js.

Если вы вносите радикальные изменения в CSS или JS, то вам все равно придется вносить изменения. Управляйте этими изменениями, располагая новые CSS и JS по другому пути, и меняйте ссылки в своем HTML при внесении изменений. Это позволяет вам:

  • мгновенно выкатывается / обратно
  • делать выборочные развертывания, динамически генерируя эти ссылки
  • веб-журналы теперь предоставляют четкий контрольный журнал для отслеживания сообщений об ошибках
  • избегайте проблем с кратковременным кэшированием CSS и JS
...