我的控制器索引视图的背景图像未在 rails 4 应用程序中加载?

Posted

技术标签:

【中文标题】我的控制器索引视图的背景图像未在 rails 4 应用程序中加载?【英文标题】:My background image for my controller index view is not loading in rails 4 app? 【发布时间】:2014-08-31 17:15:23 【问题描述】:

我有一个欢迎控制器和一个welcome.css.scss 布局。在欢迎布局中有这样的代码:

body 
background-image: url("/assets/images/sampleimage.jpeg");
background-repeat: no-repeat;
 

在资产/图像中,我有一张名为 sampleimage.jpeg 的图片,我想将其作为欢迎索引视图的背景。

我拥有以上所有内容,但我没有收到背景图片或错误消息。感谢您的帮助。

【问题讨论】:

【参考方案1】:

既然你用的是SCSS,那我给你一些想法……

--

资产路径

首先,你需要asset_path helpers,允许Rails调用资产,无论它们是在标准的“资产管道”中,还是在预编译的“静态”资产区域中

您遇到的直接问题是您在background-image 属性上调用了一个裸url。这不会调用你需要的文件,因为路径是相对的,所以不能调用(尝试从浏览器访问/assets

方法如下:

#app/assets/stylesheets/welcome.css.scss
body 
   background: 
      image: asset-url("sampleimage.jpeg");
      repeat: no-repeat;
   

asset-url 路径是可能的,因为 Rails 资产管道的 SCSS/SASS 元素 preprocesses 您的资产请求

【讨论】:

它仍然给出错误“找不到逻辑路径”和“找不到文件'sampleimage.jpeg'”它还说要解决链轮问题。 Sprockets::FileNotFound at / 找不到文件“sampleimage.jpeg”(在 /app/assets/stylesheets/welcome.css.scss.erb 中) 引发 FileNotFound,“找不到文件 '#logical_path'” 不要将 .erb 放在文件末尾 - 您是否包含并安装了 sprockets gem? 只有一分钟我才尝试过一次,是的,我只是仔细检查了一遍。

以上是关于我的控制器索引视图的背景图像未在 rails 4 应用程序中加载?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4图像未在heroku上加载

Rails 4:资产未在生产中加载

在 Rails 4 中添加背景图像

在我的应用程序中使用简单适配器未在 ListView 上显示图像

Rails/ReactJs 视图未在浏览器刷新时更新

Rails - 如何在索引控制器方法中使用额外字段渲染json