Ruby on rails 3 如何在Rails 3中生成资产ID来控制缓存?

Ruby on rails 3 如何在Rails 3中生成资产ID来控制缓存?,ruby-on-rails-3,cache-control,asset-management,Ruby On Rails 3,Cache Control,Asset Management,在Rails中,当提供静态文件时,您会得到一个附加到URL的资产ID,例如 <script src="/javascripts/application.js?1300371955" ... <link href="/stylesheets/custom.css?1299690788" ... 将时间戳附加到资源的Rails方法称为Rails\u asset\u id,在ActionView::Helpers::AssetTagHelper中定义。虽然它是一个私有方法,但可以在助手中

在Rails中,当提供静态文件时,您会得到一个附加到URL的
资产ID
,例如

<script src="/javascripts/application.js?1300371955" ...
<link href="/stylesheets/custom.css?1299690788" ...

将时间戳附加到资源的Rails方法称为Rails\u asset\u id,在ActionView::Helpers::AssetTagHelper中定义。虽然它是一个私有方法,但可以在助手中访问它,以便为自定义标记生成一个方法,如下所示:

def swf_param_tag(path)
  asset_id = rails_asset_id(path)
  "<param name='movie' value='#{path}?#{asset_id}'/>"
end
def swf_参数标签(路径)
asset\u id=rails\u asset\u id(路径)
""
结束
它需要您传入路径,因为它随后调用File.mtime(path).to\u i.to\u s来获取最后修改的时间

这里有关于资产标签为您带来什么的进一步解释:
@Unixmonkey:您的解决方案运行得非常好

另外还有插件:

将您的Adobe Flash swf文件与任何其他资产(图像、Java脚本等)一样对待,并使用SWFObject 2.2嵌入它们

具有内置的资产标签