我认为这是一个非常容易的,但我似乎无法做到这一点。基本上,我正在尝试使用 Rack 中间件将默认的 Cache-Control 标头设置到我的 Sinatra 应用程序提供的所有响应中。看起来 Rack::ResponseHeaders 应该能够完全满足我的需要,但是在尝试使用我的 rackup 文件中演示的语法时出现错误:
use Rack::ResponseHeaders do |headers|
headers['X-Foo'] = 'bar'
headers.delete('X-Baz')
end
我能够让 Rack::Cache 成功工作,如下所示:
use Rack::Cache,
:default_ttl => 3600
但是,这并不能完全达到我想要的输出,而 Rack::ResponseHeaders 提供了对标头的细粒度控制。
仅供参考,我的网站托管在 Heroku 上,所需的 Rack gem 在我的 .gems 清单中指定。
谢谢!
更新:经过一番研究,第一个问题似乎是在安装的 rack-contrib (0.9.2) 版本中找不到 Rack::ResponseHeaders。我将从调查开始。