sev*_*een 1 rack heroku sinatra
我认为这是一个非常简单的问题,但我似乎无法做到这一点.基本上,我正在尝试使用Rack中间件将默认的Cache-Control标头设置为我的Sinatra应用程序提供的所有响应.它看起来像机架:: responseHeaders响应应该能够做的正是我需要的,但我得到尝试使用证明的语法时出现错误在这里我rackup文件:
use Rack::ResponseHeaders do |headers|
headers['X-Foo'] = 'bar'
headers.delete('X-Baz')
end
Run Code Online (Sandbox Code Playgroud)
我能够让Rack :: Cache成功运行如下:
use Rack::Cache,
:default_ttl => 3600
Run Code Online (Sandbox Code Playgroud)
但是,这并没有达到我想要的输出,而Rack :: ResponseHeaders提供了对标题的细粒度控制.
仅供参考,我的网站托管在Heroku上,所需的Rack gems在我的.gems清单中指定.
谢谢!
更新:经过一些研究,看起来第一个问题是在安装的rack-contrib(0.9.2)版本中找不到Rack :: ResponseHeaders.我将从调查开始.
如果有人感兴趣,我能够让这个工作.看起来没有一种简单的方法可以rack-contrib-0.9.3
在Heroku 上安装,但我需要的唯一文件是response_headers.rb
,所以我只是将其复制到我的项目目录中并编辑我的机架如下:
require 'rack/contrib/response_headers'
# set default cache-control header if not set by Sinatra
use Rack::ResponseHeaders do |headers|
if not headers['Cache-Control']
headers['Cache-Control'] = "public, max-age=3600"
end
end
Run Code Online (Sandbox Code Playgroud)
这将在我没有在Sinatra中指定显式Cache-Control标头的对象上设置默认的最大年龄1小时 - 即静态资产.
归档时间: |
|
查看次数: |
1295 次 |
最近记录: |