2011-03-11 29 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

相關問題