Ruby on rails 资产管道url不断更改
每次我刷新浏览器时,Heroku的资产URL(application_user.js)中的Rails应用程序似乎都在不断变化 下面是我在production.rb下的资产设置:Ruby on rails 资产管道url不断更改,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,每次我刷新浏览器时,Heroku的资产URL(application_user.js)中的Rails应用程序似乎都在不断变化 下面是我在production.rb下的资产设置: config.assets.enabled = true config.assets.digest = true config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com" config.assets
config.assets.enabled = true
config.assets.digest = true
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
config.assets.initialize_on_precompile = true
也
下面是我在application.rb下看到的:
config.assets.enabled = true
config.assets.digest = true
这看起来像是一个问题
这基本上是Rails将您的资产标记为唯一/独立的一种方法。我不太清楚为什么会这样做,但这就是为什么每次都要将哈希附加到文件中的原因
动态路径
如果您的散列文件有问题,您肯定应该考虑在SCS或Javascript文件中使用一些动态路径帮助程序:
body, html { background: asset_url("layout/main/bg.png"); }
“不断变化”是什么意思?你能分享两个资产url的例子吗?第一个在页面刷新之前,第二个在页面刷新之后。每当我刷新时,我会得到不同的预编译文件(一个)包括了user.js?12234,然后是user.js?32244对不起,我的意思是像application_user-3c37b263ec073f77cd9917b56d955a37.js
然后刷新以获得application_user-2df0b6d39dc60bb5ab4791ea6fbef8cb.js
这些URL应该只在部署时更改。你有一个我们可以自己查看的URL吗?Javascript是使用=Javascript\u include\u标记“application\u user”
包含的,这有什么区别吗?没有-这是rails的标准功能!您的问题是无法加载所需的资源(图像等)?这样做是为了对抗IE等反向浏览器的攻击性浏览器缓存-如果IE决定按给定名称缓存文件,除了简单地给文件起不同的名字外,再多的缓存破坏都没有帮助。这种情况只发生在一个javascript文件上,而其他文件则没有。问题是什么?只加载带有文件名的资产?
body, html { background: asset_url("layout/main/bg.png"); }