我有Rails为我的静态资产提供服务。他们中的大多数人的名字中都有散列,并有着遥远的到期日。但对于一个文件,我不能在其名称中提供哈希,所以我需要控制到期日期。
我在我的应用程序.rb中有这个应用程序,它适用于所有静态资产:
config.static_cache_control = "public, max-age=2592000"
有没有办法让我对一个文件有一个不同的最大年龄?我知道我可以在ActionDispatch::Static
之后制作一个新的中间件,并更改某些文件的值(请参阅本文)。。。但这将针对每一个请求运行,即使是那些不是静态资产的请求。有没有更优雅的解决方案?
一个糟糕的技术可能是修复route.rb中文件的URL。您可以为此路由定义一个控制器,修复您想要的cache_control,并使用send_data
方法为文件提供服务器。