Amazon Cloudfront是否为后台主页图像或heroku提供服务? (rails app)

时间:2013-04-15 08:46:14

标签: ruby-on-rails ruby heroku amazon-s3 amazon-cloudfront

这就是我在production.rb(生产环境)文件中的内容。

  #Enable serving of images, stylesheets, and JavaScripts from an asset server
  config.action_controller.asset_host = "xxxxxxxxxxxxx.cloudfront.net"

所以它已启用。但是,我的背景图像在以前工作时停止显示。我需要在heroku或cloudfront上解决这个错误吗?我的背景图片大小为850kb。是由大图像尺寸引起的吗?

在指向图像的css.scss文件中,它是:

.big {
    width: 100%;
    height: 450px;
    position: absolute;
    z-index: -999;
    top: 41px;
    left: 0;
    background: url(../img/main.jpg);
}

所以这指向我的heroku中的/ img文件夹。是否需要将其更改为在Amazon S3上上传的文件?为什么我的背景图片不再出现了?我目前正在为heroku支付额外的dyno,如果这有任何区别的话。

由于

1 个答案:

答案 0 :(得分:2)

您需要使用Rails为您提供的image-urlasset-path帮助程序,以便在您生成的CSS文件中写出绝对图像路径。资产直接从Cloudfront提供,因此浏览器直接向Cloudfront发出请求 - 除了样式表请求之外,没有任何内容通过Heroku发送。

您可以在https://devcenter.heroku.com/articles/cdn-asset-host-rails31#asset-references-in-css-js

了解详情

本文还介绍了assetsync gem,它在这里也非常方便。

相关问题