[英]Heroku production setting Cache-Control differently from local production
[英]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_speed
, etag
現在可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.