簡體   English   中英

如何使用Heroku和Cloudfront激活Rails的頁面緩存?

[英]How to activate page cache for Rails with Heroku & Cloudfront?

網站分析人員說我沒有激活頁面緩存, https://tools.pingdom.com/# ! /bDj23F/www.anthonygalli.com 我盡了一切努力。 我正在使用rails "4.2.7.1"

在視圖中

<%= render :partial => @posts, cached: true %>

在控制器中

fresh_when last_modified: @posts.created_at.utc, etag: @posts

在production.rb中

config.action_controller.perform_caching = true
config.action_controller.asset_host = 'd37p52igaahgm9.cloudfront.net'

UPDATE

在此處輸入圖片說明

您可以在Cloudfront發行版中做的一件事是添加自定義標頭參數。此處, GoogleAmazon並不完全同意,因為Google建議使用Expires標頭,而Amazon建議使用Cache-Control max-age參數/值,因此您必須選擇一個,因為如果您指定兩個,亞馬遜將僅處理Cache-Control

我們建議您使用Cache-Control max-age指令而不是Expires標頭字段來控制對象緩存。 如果您同時為Cache-Control max-age和Expires指定值,則CloudFront僅使用Cache-Control max-age的值。

如果您的雲前發行版來自S3存儲桶,則可以使用Amazon S3控制台將標頭添加到對象中

  • 從aws s3控制台打開s3對象的屬性
  • 在右窗格中,展開“元數據”。
  • 單擊添加更多元數據。
  • 在“密鑰”列表中,單擊“緩存控制”或“過期”(如果適用)。
  • 在值字段中,輸入適用的值:

    • 對於“緩存控制”字段,輸入:

       max-age=number of seconds that you want objects to stay in a CloudFront edge cache 
    • 對於“過期”字段,以HTML格式輸入日期和時間。

  • 單擊保存。

見下文

在此處輸入圖片說明

據我所知,有3種類型的Rails兌現

  • 頁面緩存=>用於所有要放入緩存的頁面..主要用於靜態頁面

  • 動作緩存=>頂部放置控制器動作

  • 片段緩存=>用於視圖的一部分/或用於邏輯等

實現觀察者和清除程序以使緩存在某些更改/條件上失效也是必需的,否則將再次呈現n

暫無
暫無

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

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