我让Rails服务于我的静态资产。他们中的大多数都有他们名字中的哈希值,并且有很长的未来到期日。但是对于一个文件,我无法使用其名称中的哈希值来提供它,因此我需要控制到期日期。
我在application.rb中有这个,它适用于所有静态资产:
config.static_cache_control = "public, max-age=2592000"
我有办法让一个文件只有不同的最大年龄吗?我知道我可以在ActionDispatch::Static
之后创建一个新的中间件并更改某些文件的值(请参阅this writeup)...但是这将针对每个请求运行,即使是那些不是静态资产。有更优雅的解决方案吗?
答案 0 :(得分:0)
糟糕的技巧可能是在route.rb中修复文件的URL。您可以将Controller定义到此路由,修复所需的cache_control,并使用send_data
方法为该文件提供服务。