我刚准备好运行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。
答案 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并检查图像引用的路径,同时参考日志以检查访问的最终路径并与丢失的资产相关联。