2012-01-06 95 views
0

好吧,我的堆棧是Ubuntu,Nginx 1和Unicorn。我想讓Nginx提供靜態內容的預編譯gzip。nginx:gizip_static:似乎不工作

相關nginx的配置:

location ~ ^/assets/ { 
    gzip_static on; 
    gzip_http_version 1.1; 
    gzip_proxied  expired no-cache no-store private auth; 
    gzip_disable  "MSIE [1-6]\."; 
    gzip_vary   on; 
    expires 24h; 
    add_header Cache-Control public; 
} 
從另一個SF的問題,我跑strace的,看看是否被請求他們,結果

則:

open("/media/sf_ape/public/assets/application-ae30e133eabbb10d9464189d3fb71e25.js.gz", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 9 

我已經驗證該文件存在。但是,當我觀察訪問日誌時,它會提供常規.js文件而不是.gz文件。我已驗證請求的標頭指定了gzip,並且響應標頭現在顯示爲gzip。我搜索了很多,但到目前爲止我還沒有找到答案。我可能錯過了某個地方,但任何幫助,將不勝感激。

+0

聽起來很奇怪,它應該提供靜態文件。 – 2012-01-06 20:10:45

+0

它確實提供文件;然而,它不提供相同的時間戳在目錄中的gzip版本 – loneaggie 2012-01-06 20:15:00

+0

即使是陌生人。 – 2012-01-06 20:16:10

回答

0

我終於明白了這一點。當您運行rake資產時:預編譯所有靜態資產已編譯並移至/ public。訣竅是例如.js和.js.gz具有完全相同的時間戳。一旦我確實觸摸* .gz一切正確。希望能節省一些時間。