4

我正在创建一个 Rails 应用程序,它将部署到台式机上,同时运行网络服务器和浏览器(它是一个测试应用程序,需要能够在没有互联网连接的情况下运行)。

出于这个原因,我将运行 Mongrel 或 WEBRick,而不像通常那样在其前面使用 Apache/Nginx。浏览器将直接访问 Mongrel。

我现在面临的问题是加载资产(javascript/样式表/图像)需要一段时间。通常,我会通过在 Mongrel/WEBRick 前面的 Apache 代理中设置这些资产的未来到期日期来解决这个问题,这样资产只被请求一次,之后每个操作只有一个请求。

但在这种情况下,没有代理,我正在使用config.serve_static_assets = true

所以问题是:是否有可能告诉 Mongrel/WEBrick 在静态资产上贴上遥远的未来到期标题?

我在 Ruby 1.9.2 上使用 Rails 3。

4

1 回答 1

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
于 2011-03-25T10:16:49.263 回答