Кэширование IIS CSS

Когда мы разрабатываем новые сайты или тестируем изменения в новых, которые включают css, после того, как новый код зафиксирован, и кто-то идет проверить изменения, они всегда видят кешированную версию старого css. Это вызывает много проблем при тестировании, потому что люди никогда не уверены, есть ли у них последняя версия CSS на экране (я знаю, что сдвиг и нажатие кнопки «Обновить» очищает этот кеш, но я не могу ожидать, что конечные пользователи узнают об этом). Каковы мои возможные решения?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
13
0
12 798
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

В вашей среде разработки установите заголовок Expires намного ниже. В производственной среде установите более высокое значение, а затем - низкое примерно за неделю до выпуска релиза.

Ответ принят как подходящий

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

"styles.css? token = 1234" в ссылке CSS в вашей разметке и изменяйте значение "token" при каждой регистрации CSS.

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

Greg 23.09.2008 01:48

Хотя это решение будет работать, оно совершенно непрактично для больших веб-сайтов, которые могут содержать сотни ссылок на файлы .css и .js.

Karlth 26.11.2013 01:21

@ user357320, я отсылаю вас к строкам 21 и 22 этой самой страницы, которая по некоторым определениям является «большим веб-сайтом». К счастью, это хорошо структурированный и спроектированный веб-сайт, поэтому на нем нет сотен ссылок, с которыми нужно бороться.

Rob 26.11.2013 01:41

@Karlth Любой веб-сайт, особенно большой, должен использовать сборку css и js, а большинство библиотек имеют временную метку / версию / хэш, сгенерированную в url, поэтому не нужно изменять сотни ссылок css.

user3285954 22.11.2016 18:59

@ user3285954 «Любой сайт должен» легче сказать, чем реализовать!

Karlth 23.11.2016 02:52

@Karlth Если вы используете фреймворк, то обычно просто переключаете флаг, это может быть даже сделано для каждой среды, например никаких пакетов и минификации для разработчиков, но и то, и другое для всех остальных. И не следует создавать большой сайт без использования фреймворков. И на практике даже крошечные веб-сайты могут использовать фреймворки, и часто это делают.

user3285954 24.11.2016 18:20

@ user3285954 Мы не используем сторонние фреймворки, только поддерживаем библиотеки. Лично я бы не рекомендовал использовать фреймворки Javascript / CSS. Мнения, конечно, разные!

Karlth 24.11.2016 19:30

Это не лучшее решение, но я уже обходил это раньше на уровне страницы, добавляя строку запроса в конец вызова файла CSS:

 <link href = "/css/global.css?id=3939" type = "text/css" rel = "stylesheet" />

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

Подобные (немного более подробные) ответы даны для версии этого вопроса для JavaScript, которая имеет ту же проблему / решение.

Помощь с агрессивным кешированием JavaScript

Другие вопросы по теме