问题描述
一rails项目 现在有一问题:我修改了这个swf文件的参数后。页面加载的是上一个swf文件,例如:1:有一个 attack.swf 文件要在这个页面中预览2:发现attack.swf中一些元素的位置x,y不正确。3:于是我在页面中修改了这些参数,用程序打包后再次生成attack.swf4:然后刷新见面。这个时候我发现我修改的参数并没有起作用,国为浏览器加载的是上一个swf文件没有加载我新打包的文件。我清除浏览器的缓存后刷新就可以看到我新修改的swf文件。问:有没有什么方法在rails 中清除这些缓存呢?
问题解答
回答1:这个其实和RAILS没有关系。主要是网站的资源服务器的配置,可能是Apache/Nginx也可能是ruby自带的那些。可以模仿ruby处理资源文件的方式,如果swf改变了,就换个名字,避免缓存问题
回答2:去看看Rails的 Asset Pipeline http://guides.rubyonrails.org/asset_p...
rails会在你的静态资源上加一个参数,attack.swf?t=12一旦检测到你的静态资源改变了,这个参数就会变attack.swf?t=13
你也可以参考这种方式,原理就是浏览器认为你的这个资源是新的,然后会去重新加载进来。不然总是304 Not Modified,总浏览器缓存太麻烦了。