Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 资产管道url不断更改_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails 资产管道url不断更改

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

每次我刷新浏览器时,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.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"); }