繁体   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