我正在创建一个Rails应用程序,它将部署到桌面计算机上,同时运行Web服务器和浏览器(它是一个需要能够在没有Internet连接的情况下运行的测试应用程序)。
出于这个原因,我将运行Mongrel或WEBRick,而不像往常那样在它前面没有Apache / Nginx。浏览器将直接访问Mongrel。
我现在面临的问题是加载资产需要一段时间(javascript / stylesheets / images)。通常,我会通过在Mongrel / WEBRick前面的Apache代理中设置这些资产的未来到期日来解决这个问题,这样资产只需要一次请求,之后每个操作只有一个请求。
但在这种情况下,没有代理,我正在使用config.serve_static_assets = true
所以问题是:是否可以告诉Mongrel / WEBrick在静态资产上打击远期到期的标头?
我在Ruby 1.9.2上使用Rails 3.
答案 0 :(得分:1)
def get(path)
@headers['Content-Type'] = MIME_TYPES[path[/\.\w+$/, 0]] || "text/plain"
unless path.include? ".." # prevent directory traversal attacks
@headers['X-Sendfile'] = "#{PATH}/static/#{path}"
else
@status = 403 # "403 - Invalid path"
end
end