2008-09-22 3 views
11

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

ответ

9

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

в ссылке CSS в разметке и изменить значение «маркера» на каждом CSS регистрация

+0

Я уже использую статический метод для добавления CSS на страницы, так что я добавил очень важна временная метка сборки для запроса. – Greg 2008-09-22 21:48:08

5

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

2

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

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

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

2

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

Help with aggressive JavaScript caching

Смежные вопросы