Rails:手动清除资产管道缓存

时间:2014-01-28 21:26:24

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-3

我知道rails在修改文件时会自行清除资产管道缓存,但我有一个特殊的场景。我正在将我的应用程序作为对ajax请求的HTML响应,使用rack-cors跨域来绕过CORS。

问题是,每次ajax请求在人的浏览器上传递时,我都会得到一个新的application.js文件:

这是三个请求..三个单独的application.js文件 error

如果我可以在启动请求之前清除资产管道缓存,我想我可以避免这个问题。无论如何我可以通过编程方式做到这一点我不确定这是在轨道侧还是在远程客户端完成的。我假设客户端有一些jquery来清除缓存,但我真的在寻找关于这个问题的一些额外的观点。我试过了

$(#myresultsdiv).empty() 
没有运气。任何帮助非常感谢!

2 个答案:

答案 0 :(得分:1)

我会关闭资产管道,因为如果为每个请求重新生成它,你就无法获得它的好处。

在您的环境配置中:

  # Enable asset pipeline
  config.assets.digest = false

  config.assets.enabled = false

答案 1 :(得分:0)

我没有设法清除资产管道缓存,但是我通过使用ajax预过滤器禁用了nonce使用:

$.ajaxPrefilter('script', function(options) {
options.cache = true;
});