что Firefox решает не кэшировать? - PullRequest
0 голосов
/ 10 сентября 2011

Я просматриваю сетевой трафик из моего приложения rails с помощью firebug и вижу, что файлы css и javascript не кэшируются.На странице есть такие вещи, как:

<script src="/javascripts/prototype.js?1315256241" type="text/javascript"></script>

, и кажется, что? 1315256241 заставляет FF не кэшировать элемент.Но? 1315256241 - это "особенность" Rails, которая была представлена ​​несколько лет назад.Поэтому я удивлен, что он предотвращает кеширование элемента, но никто не спрашивал об этом и не исправлял его.

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

Мой вопрос таков: «Суффикс? 1315256241 (запрос) препятствует кешированию FF страницы?»

И если да, то что делает большинство людей?сделать в Rails, чтобы предотвратить это?

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

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

Если это так, то Firefox не будет кэшировать, поскольку каждый раз, когда он думает, что запрашивает другой файл, см., Например, ниже.

/ JavaScripts / prototype.js? 1315256241

/ JavaScripts / prototype.js? 1315256242

/ JavaScripts / prototype.js? 1315256243

/ JavaScripts / prototype.js? 1315256244

и т. Д.

Я бы посмотрел на удаление числа в строке запроса, так как оно не требуется. Я не разработчик rails, поэтому было бы интересно узнать, что вы имеете в виду, когда говорите, что это «особенность».

0 голосов
/ 11 сентября 2011

Если вы просматриваете документацию для AssetTagHelper и ищете «Настройка пути ресурса», вы найдете это объяснение того, почему код добавляет временную метку вместе с необходимыми изменениями в моей конфигурации Apache, чтобы воспользоваться этой функции.

По умолчанию Rails добавляет временные метки актива ко всем путям актива. Это позволяет вам установить дату истечения срока действия кэша для актива далеко в будущем, но при этом иметь возможность мгновенно аннулировать его, просто обновив файл (и, следовательно, обновив метку времени, которая затем обновляет URL-адрес, поскольку метка времени является частью этого который в свою очередь перебивает кеш).

Ответственность за использование этой функции лежит на веб-сервере, который вы используете для установки даты истечения срока давности для ресурсов кэша. Вот пример для Apache:

# Asset Expiration
ExpiresActive On
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
  ExpiresDefault "access plus 1 year"
</FilesMatch>

(и документация продолжается ...)

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