2011-08-20 54 views
0

在rails中,我想找到一个递增的数字,增加或至少改变每个人的部署或git提交/推送。rails,找到一个递增的数字用于缓存破坏

我需要这个缓存破坏CDN。

config.action_controller.asset_path = proc { |asset_path| 
    "/rel-#{RELEASE_NUMBER}#{asset_path}" 
} 

有什么建议吗?由于

回答

1

有点像?

def release_sha 
    @release_sha ||= `git log -1 --pretty=format:%h 2>/dev/null` 
end 

你可以用这种方法做得更好,并获得不同文件夹/文件的SHA。

def release_sha(path=nil) 
    @release_sha ||= {} 
    @release_sha[path] ||= `git log -1 --pretty=format:%h #{path} 2>/dev/null` 
end 

然后将其称为release_sha('/public/images')以获取该文件夹的最新SHA。

0

只需使用当前的时间戳(时期)..

Time.now.usec 

您可以将此值写入到一个常数,把它在配置/ initlaizers/cache_buster.rb例如使用脚本(或写你的自己的耙子任务)..

+0

不能这样做,因为它会改变每一个请求。我需要静态部署,因此CDN不会刷新内容。 – AnApprentice

+0

我意识到在输入我的初始响应之后,我添加了将该值写入文件的初始化程序中的设置常量的建议。我实际上是在我的php应用程序中完成此操作并使用它在CDN中创建目录 – Stephen