как рельсы истекают активы? - PullRequest
3 голосов
/ 25 февраля 2012

В application.rb есть следующее:

# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'

Я увеличил это значение до 1,1, но когда я перезагрузил свою страницу вживую, старый js все еще был загружен.Я посмотрел на источник, ожидая найти параметр версии GET, добавленный к файлам js и css, но такого не было.

<link href="/assets/application.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application.js" type="text/javascript"></script>

Что заставляет браузер очищать кеш?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2012

Номер версии учитывается только при создании отпечатков md5 для ваших активов.

http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark

2 голосов
/ 09 ноября 2012

комплект:

config.assets.digest = true 

в производстве.рб. Затем, когда вы прекомпилируете свои таблицы стилей, используя:

rake assets:precompile

вы увидите, что отпечаток был добавлен к фактическому имени файла, например:

styles-5b4f282be3720d5b1e40d9e343dfc60a.css

Этот отпечаток пальца изменяется при редактировании таблицы стилей (или другого актива). Измененное имя файла вынуждает браузер очистить кеш.

1 голос
/ 25 февраля 2012

Вы должны использовать конвейер активов. Затем добавьте ресурсы с помощью asset_path, javascript_include_tag и т. Д. У вас нет отпечатка Md5, поэтому либо ваш конвейер активов не включен, либо вы не правильно связываетесь с js.

...