Javascript Rails:手动清除资产管道缓存
我知道rails在修改文件时会自动清除资产管道缓存,但我有一个特殊的场景。我将我的应用程序作为对ajax请求的HTML响应,跨域使用以绕过CORS 问题是,每次ajax请求在用户浏览器上通过时,我都会得到一个新的application.js文件: 这是三个请求..三个单独的application.js文件 如果我可以在启动请求之前清除资产管道缓存,我想我可以避免这个问题。不管怎样,我可以通过编程实现吗?我不确定这是在rails端还是远程客户端完成的。我假设在客户端使用jquery来清除缓存,但实际上是在寻找关于这个问题的其他观点。我试过了Javascript Rails:手动清除资产管道缓存,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,我知道rails在修改文件时会自动清除资产管道缓存,但我有一个特殊的场景。我将我的应用程序作为对ajax请求的HTML响应,跨域使用以绕过CORS 问题是,每次ajax请求在用户浏览器上通过时,我都会得到一个新的application.js文件: 这是三个请求..三个单独的application.js文件 如果我可以在启动请求之前清除资产管道缓存,我想我可以避免这个问题。不管怎样,我可以通过编程实现吗?我不确定这是在rails端还是远程客户端完成的。我假设在客户端使用jquery来清除缓存,但
$(#myresultsdiv).empty()
没有运气。非常感谢您的帮助 我会关闭资产管道,因为如果为每个请求重新生成资产管道,您将无法从中获益 在您的环境配置中:
# Enable asset pipeline
config.assets.digest = false
config.assets.enabled = false
我没有设法清除资产管道缓存,但通过使用ajax预过滤器禁用了nonce用法:
$.ajaxPrefilter('script', function(options) {
options.cache = true;
});
config.assets.digest=false,不会执行任何操作。我改为config.assets.enabled=false,尽管这确实解决了问题,但由于我一直依赖于资产管道,因此又出现了一百万个问题。有没有办法在不关闭资产管道的情况下做到这一点?