生产中的Rails应用程序无法加载图像?

时间:2017-10-24 17:31:29

标签: css ruby-on-rails sass

我刚准备好运行Ubuntu 17.04,Apache2,Passenger,最新Ruby和Rails的生产服务器。 当我浏览我的网站时,CSS中用作背景图像的图像无法加载:

.firstrow {
  background-image: url("backdrop2.png");
}

错误:http://server.lan/assets/backdrop2.png

我想我必须在CSS中使用更多的FQDN来获取图像,但是它如何在dev中运行?我应该在CSS中使用什么路径? 我还要提一下,我使用的是SASS。

2 个答案:

答案 0 :(得分:2)

您应该使用image-url helper。如果您使用的是Sass,则可以使用以下代码替换代码:

.firstrow { background-image: image-url("backdrop2.png"); }

这当然假设您的图片位于Rails的图片assets search paths之一。默认情况下,Rails资产管道将在以下位置搜索您的图像:

  • app/assets/images
  • lib/assets/images
  • vendor/assets/images

此外,请确保您的部署脚本在生产服务器上运行rake assets:precompile RAILS_ENV=production。许多人自动完成,但不是全部。

答案 1 :(得分:0)

所使用的资产路径应更具动态性,以支持这两种环境。

http://www.siteadvisor.com/sites/=

尝试在生产环境中运行https://www.mcafee.com/threat-intelligence/site/default.aspx?url=,因为在public / assets文件夹中搜索默认资源(例如图像)。

当包含图像路径的DOM元素在页面中加载时,打开firebug并检查图像引用的路径,同时参考日志以检查访问的最终路径并与丢失的资产相关联。