簡體   English   中英

在Rails 4.1中缺少Etag並且緩存控制未在生產環境中更改為公開

[英]Etag missing and Cache-control not changing to public on production in Rails 4.1

想知道是否有人可以幫助我。 我一直試圖在Rails 4.1中將Etags和緩存控制設置為公開,但沒有運氣。 在開發機器中,一切正常運行,但是在生產中,當我檢查瀏覽器標頭時,它始終是“ Cache-Control:私有,必須重新驗證,max-age = 0”,沒有etag的跡象。

使用fresh_when或stale,例如:if stale?(etag:etag_here,public:true),就像這些功能不存在一樣,因為它們什么都不做。 etag不會出現,並且緩存控制不會從私有更改為公共。

當我設置“上次修改時間”時,將顯示在標題中。

由於這僅發生在生產中,因此我嘗試了一些嘗試以查看是否可以使它工作:

在我的服務器上將Apache更改為Nginx。 沒運氣。 禁用的Gzip。 沒運氣。 嘗試將etag開頭的W /標記為弱etag。 沒運氣。 我什至已經啟動了一個BRAND NEW應用程序,除了其他標准應用程序外沒有其他gem,並嘗試將etag和緩存控件設置為公開。 仍然沒有運氣。

因此,即使當我創建一個新應用程序時,etag和緩存控制仍然不起作用。.Gzip在nginx上已關閉,並且Rack :: ConditionalGEt和Rack :: Etag都位於中間件的末尾,只是不保存到標題中。

任何答復將不勝感激。 謝謝。

我發現了為什么這對我來說不起作用。 我已經將Google page_speed模塊編譯為nginx。 當我關閉page_speedetag現在可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM