2

我让 Rails 为我的静态资产提供服务。他们中的大多数人的名字中都有哈希值,并且有很远的到期日期。但是对于一个文件,我不能在其名称中使用哈希来提供它,因此我需要控制到期日期。

我的 application.rb 中有这个,它适用于所有静态资产:

config.static_cache_control = "public, max-age=2592000"

有没有办法让我只为一个文件设置不同的最大年龄?我知道我可以创建一个新的中间件,ActionDispatch::Static然后更改某些文件的值(参见这篇文章)......但是这将针对每个请求运行,即使是那些不是静态资产的请求。有没有更优雅的解决方案?

4

1 回答 1

0

一个不好的技术可能是在你的 route.rb 中修复你的文件的 URL。您可以为此路由定义一个控制器,以修复您想要的 cache_control 并使用send_data方法来为文件提供服务。

于 2012-04-04T08:14:18.123 回答