rya*_*ogo 7 ruby caching heroku sinatra http-headers
我有一个相当简单的应用程序(只有一个index.html文件和一个css文件 - 它只是一个静态页面)在Heroku上托管.
我使用Sinatra在Heroku上托管它.'app'本身很简单:
require 'rubygems'
require 'sinatra'
get "/" do
File.read(File.join('public', 'index.html'))
end
Run Code Online (Sandbox Code Playgroud)
问题是,如何为静态资产设置HTTP响应头?特别是,我想设置Expires标头用于缓存目的.
编辑:我希望将所述标题添加到静态资产(即,位于其下的那个/public,如背景图像,图标等)
awe*_*ndt 16
除了我不会通过Sinatra堆栈只是为了提供静态文件,你打电话
cache_control :public, max_age: 60
Run Code Online (Sandbox Code Playgroud)
缓存一分钟.cache_control是Sinatra的助手.
否则,我建议您查看http://www.sinatrarb.com/configuration.html,看看如何设置Sinatra,这样您就无需处理静态文件.
希望这可以帮助.
编辑:我刚看到你明确要求Expires标题.我不确定,但这应该和我一样Cache-Control.对困惑感到抱歉
作为@ awendt答案的扩展,Sinatra实际上可以处理静态文件而无需明确定义路由并打印文件.
通过增加:
set :static, true
Run Code Online (Sandbox Code Playgroud)
..你可以添加你index.html和stylesheet.css一个public/文件夹.然后,当您访问时,http://localhost:9292/stylesheet.css您将获得静态文件.
如果要使用其他文件夹名称而不是默认名称,请public/尝试:
set :public, "your_folder_name"
Run Code Online (Sandbox Code Playgroud)
如果我们想要不那么明确,我们可以public/在Sinatra :static为我们启用的知识中创建文件夹:)
来源: http ://www.sinatrarb.com/configuration.html#__enabledisable_static_file_routes
| 归档时间: |
|
| 查看次数: |
7814 次 |
| 最近记录: |