如何在Rails 4中正确定义资产路径

时间:2014-05-15 21:40:37

标签: css ruby-on-rails heroku sass asset-pipeline

请原谅我的noobness,我是RoR的新手。

当我将图片部署到Heroku时,我无法加载图片。

我有两个图像从css文件加载,我移动到scss。

最初我有

background: url(../images/k-opacity-70.png);

background: #111 url(../images/intro-bg.jpg) no-repeat center;

在layout.css文件中

然后我注意到一切都在本地工作正常,但是当我将它们部署到Heroku时,图像不会加载。

经过一些研究和多次尝试后,我现在已经

background: image-url('k-opacity-70.png');
background: #111  image-url('intro-bg.jpg')  no-repeat center;

在名为layout.css.scss

的文件中

再一次,图像在本地正常工作,但在我将应用程序部署到Heroku时却没有。

谁能告诉我我做错了什么?

我的应用是盛开--coast-2140.herokuapp.com

---- ---更新 我已经尝试过在这里和其他网站上看到的类似帖子中看到的东西没有运气......

gem ‘rails_12factor’, group: :production  

config.serve_static_assets = true
config.action_dispatch.x_sendfile_header = ‘X-Accel-Redirect’
config.assets.compile = true

heroku run rake assets:precompile

rake assets:precompile RAILS_ENV=production

1 个答案:

答案 0 :(得分:0)

在您的网站CSS中,一切看起来都很好。图像正确加载。您正在使用文件

http://blooming-coast-2140.herokuapp.com/assets/k-opacity-70-26821b89b8efd61bf304cc109d3af47e.png and this file exists

要通过image-url使其正常工作,您应该在您的设置中正确设置:

http_path = "../"
images_dir = "img"
relative_assets = true

这些来自Compass的配置。您应该根据文件夹结构更改它们。