css 没有缓存在 cloudfront for rails 应用程序中?

标签 css ruby-on-rails caching amazon-cloudfront

下面是production.rb

#Production.rb
Rails.application.configure do 
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
  config.assets.compress = true
  config.assets.js_compressor = :uglifier
  config.assets.css_compressor = :sass
  config.assets.compile = true
  config.assets.digest = true
  config.log_level = :debug
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  config.static_cache_control = "public, max-age=31536000"  
  config.action_controller.asset_host = 'cloudfront url'
end

Cloudfront 部署由单独的团队完成。我无权访问它。这里所有的js文件都存储在云端缓存中,但css文件没有存储在云端缓存中。

对于我得到的所有 Css 文件

 Cache-Control:private
 Connection:keep-alive
 Content-Encoding:gzip
 Content-Length:6845
 Content-Type:text/css; charset=utf-8
 Cteonnt-Length:32061
 Date:Thu, 17 Dec 2015 13:35:27 GMT
ETag:"247788efdf2d42a0c790b271b3d346c626a1b4c3ebbcce792d212937ea5c7b04"
 nnCoection:close
 Status:200 OK
 Via:1.1 f12119dc59597a3cbedac2ac64405829.cloudfront.net (CloudFront)
 X-Amz-Cf-Id:6NCYOH5i738ohaNYHHbc23SkC_HedfU2OIZJBtNEtA_dNpYZtBe4GA==
 X-Cache:Miss from cloudfront
 X-Request-Id:e0d80b13-b5c3-48db-8747-f56dc6e79493
 X-Runtime:0.002792

但是对于 curl 中的相同 css,它正在命中

 HTTP/1.1 200 OK
 Content-Type: text/css; charset=utf-8
 Content-Length: 122951
 Connection: keep-alive
 Date: Thu, 17 Dec 2015 03:36:06 GMT
 Status: 200 OK
 nnCoection: close
 Cache-Control: public, max-age=31536000
 ETag: "3c489ea49217d1731e0dc838b9453f2319c8b620361eccffa17df67f02ca63f5"
 X-Request-Id: ad9bbcf1-6197-4bed-af86-b9dc2c3a64a7
 X-Runtime: 0.003177
 Age: 30304
 X-Cache: Hit from cloudfront
 Via: 1.1 84da4601f3b7a85ee4beaede1928e823.cloudfront.net (CloudFront)
 X-Amz-Cf-Id: c1CTc_ZKoCtMX4sMe6bA8VcJ0TzliYTkPkqR3EJ1wNu0jKWYBqL49g==

对于它正在命中的 js 文件。当我向 css 文件发出请求时,它来自原点(我认为)花费了太多时间。

有什么建议吗?

最佳答案

运行此 cURL 命令以验证 HTTP 响应内容编码是否为 gzip:

curl -i -H "Accept-Encoding: gzip,deflate"http://your.css.file

然后您应该会在响应中看到这个关键短语

内容编码:gzip

关于css 没有缓存在 cloudfront for rails 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331008/

相关文章:

css - 你如何在 Angular-UI-Bootstrap 中缩放轮播容器的大小

javascript - 如何在不同的浏览器和缩放时保持单词始终保持在其当前行的位置?

ruby-on-rails - Rails with Redshift - 如何创建关系?

jQuery:如何获取子菜单的子菜单?

css - Webpack - 我应该如何包含我为 prod/qa/dev 环境生成的 css?

ruby-on-rails - 从 Rails ActiveRecord 中的结果中排除一些 id

ruby-on-rails - 由于某种原因无法创建 Makefile

asp.net - 在 ASP.NET 2.0 中的特定时间清除缓存

java - Redisson Hibernate 缓存模块是否在多个容器中共享相同的数据?

caching - Firebase托管-强制浏览器在新部署上重置缓存?