注:我對如何使用,以GZIP數據另一個類似的問題Ruby的zlib
這技術上得到的回答是,我並沒有感覺,因爲它已回答所以雖然我可以開始發展的問題這個問題是相關的,它是不一樣的...在西納特拉使用gzip壓縮使用Ruby
下面的代碼(我相信)是GZIP靜態CSS文件並將結果存儲在result
變量。但是我該怎麼處理這個問題:如何將這些數據發送回瀏覽器,以便它被識別爲GZIP而不是原始文件大小(例如,在檢查我的YSlow分數時,我希望看到它正確標記我確保我的GZIP靜態資源)。
z = Zlib::Deflate.new(6, 31)
z.deflate(File.read('public/Assets/Styles/build.css'))
z.flush
@result = z.finish # could also of done: result = z.deflate(file, Zlib::FINISH)
z.close
...有一點要注意的是,在我的前面的問題的受訪者澄清說,Zlib::Deflate.deflate
不會產生gzip壓縮數據。它只會產生zlib編碼的數據,所以我需要使用Zlib::Deflate.new
以及等於31的windowBits
參數來啓動gzip流。
但是,當我運行此代碼時,我實際上不知道如何處理result
變量及其內容。互聯網上沒有關於如何將GZIP編碼的靜態資源(如JavaScript,CSS,HTML等)發送到瀏覽器的信息,這使得頁面加載速度更快。看來,我閱讀的每篇Ruby文章都是基於某人使用Ruby on Rails !!?
任何幫助真的很感激。
感謝您的詳細回覆和示例代碼。我採納了您的意見,並使用了「Rack :: Deflater」。在我的應用程序文件頂部的一行代碼,它的工作原理是:'使用Rack :: Deflater' – Integralist
對於nginx選項爲 –
Downvoted,因爲這將提供gzip內容,無論客戶指定了什麼,他們都可以接受'Accept-Encoding'頭。這當然是不好的做法,應該避免。 – aidan