js-*_*der 11 ruby heroku sinatra
我正在使用最新的Sinatra,我正在Heroku上主持.有没有办法可以为/public目录中提供的静态资产设置缓存标头?
/public在检查已定义的任何路由之前,Sinatra提供目录中的文件,因此我不能只是cache_control路由中的方法.
该/public目录包含我的应用程序的CSS和JavaScript.我不希望浏览器每次都下载这些文件,因为它们不会经常更改.
mat*_*att 14
您可以使用该static_cache_control设置为Cache-ControlSinatra提供的静态文件设置标题:
set :static_cache_control, [:public, max_age: 60 * 60 * 24 * 365]
Run Code Online (Sandbox Code Playgroud)
请注意,您需要使用显式数组[...].
此外,这将适用于目录中的所有文件public,即您无法为css和javascript文件指定不同的标头.
(如果您没有使用Heroku并且正在使用Apache或Nginx来提供静态文件,那么这将不起作用,在这种情况下,您需要单独配置您的Web服务器).