2011-01-27 2 views
3

Мне интересно, как люди занимаются обновлением изображений/css/js в отношении кеша браузера.Обновление кэшированных изображений/css/js без переименования

Очевидно, что полезно использовать mod_expires и иметь будущий срок действия и т. Д. - но как вы можете обновлять эти файлы, если вы не хотите постоянно переименовывать файл?

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

ответ

0

Общий способ сделать это - создать случайное число и добавить его как переменную GET/POST. Например:

http://example.com/myfile.html?r=189818273

Просто мои два цента ....

+1

Это останавливает его получение кеширования, хотя, поскольку число будет отличаться каждый раз. Я хочу, чтобы он был кэширован - я просто хочу обновить его. –

0

Все эти ресурсы будут обновляться, если не изменит правила кэширования по умолчанию. Вы можете использовать FireBUG для тестирования. Он вернет 304, если ресурс не изменен, и 200, если он был изменен. Поэтому, если у вас есть изображение на странице, оно будет проверяться по умолчанию в каждом запросе.

+1

Вы не можете полагаться на модифицированную проверку, хотя браузер может решить не проверять это, потому что заголовок expires в будущем. –

0

Я хотел бы добавить параметр строки запроса с меткой времени последнего изменения файла:

http://example.com/script.js?v=123456

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

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