Sinatra将cache_control设置为公用文件夹编译错误中的静态文件

toy*_*toy 5 ruby caching sinatra

我不确定为什么,但是当我设置此设置时,它无法编译

set :static_cache_control, [:public, :max_age => 300]

这就是我得到的


syntax error, unexpected tASSOC, expecting ']' (SyntaxError)
  set :static_cache_control, [:public, :max_age => 300]
                                                  ^


我只想为css,javaascript和图像文件设置"expires"标头.

谢谢.

mat*_*att 9

我猜你在使用Ruby 1.8.7.似乎Sinatra文档中显示的语法(数组中的最后一个条目转换为哈希)在Ruby 1.9中引入,而不是1.8.7.

尝试使用大括号显式包装哈希条目{}:

set :static_cache_control, [:public, {:max_age => 300}]
Run Code Online (Sandbox Code Playgroud)

(或升级Ruby.)