2011-03-11 30 views
4

我正在创建一个Rails应用程序,该应用程序将部署到桌面计算机上,同时运行Web服务器和浏览器(这是一个需要能够运行的测试应用程序没有互联网连接)。使Mongrel/WEBRick为将来过期的静态资产提供服务

由于这个原因,我会运行Mongrel或WEBRick,没有Apache/Nginx在它的前面,就像你通常做的那样。浏览器将直接访问Mongrel。

我现在面临的问题是,它需要一段时间来加载资产(javascript/stylesheets/images)。通常情况下,我会通过在Mongrel/WEBRick前面的Apache代理中设置这些资产的将来到期日期来解决这个问题,以便资产只被请求一次,之后每个操作只有一个请求。

但是在这种情况下,不存在代理,我使用config.serve_static_assets = true

所以,问题是:是否有可能告诉杂种/使用WEBrick涂上点静态资产远的将来到期头?

我在Ruby 1.9.2上使用Rails 3。

+0

http://osdir.com/ml/RubyonRailsTalk/2011-03/msg01189.html – Stefan 2011-04-07 09:22:12

回答

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 
+0

不完全是最优的,但是这是一个可能的解决方案确实如此。谢谢。 – 2011-04-04 12:55:18

相关问题