0

这就是我在 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 上的额外测功机付费。

谢谢

4

1 回答 1

2

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

您可以在https://devcenter.heroku.com/articles/cdn-asset-host-rails31#asset-references-in-css-js阅读更多相关信息

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

于 2013-04-15T09:32:33.657 回答