在 Rails 4 中添加背景图像

Posted

技术标签:

【中文标题】在 Rails 4 中添加背景图像【英文标题】:Adding background image in Rails 4 【发布时间】:2015-01-11 05:00:50 【问题描述】:

如何在 Rails 4 中包含背景图片?我正在尝试将它添加到我的 html 中的 div 中。目前,该图像位于我的/assets/images 目录中。

HTML:

<header>
  <div class="background_image">

  </div>
</header>

CSS:

.background_image 
    background: url(/assets/header-bg.jpg);

使用我目前拥有的代码,没有显示图像

【问题讨论】:

后台url路径不应该是/assets/images/header-bg.jpg @Bijan 好吧,我认为没有 rails 4 是的,但我正在阅读,在我看来,rails 做了一些不需要 images 部分的预处理 然后看看Here 【参考方案1】:

这是一篇旧帖子,但我觉得这仍然可以使用更好的答案。在引导程序中调整图像的大小是很棘手的,所以要让它调整或显示为你想要的,需要一些 Photoshop,但是将它放到你想要的位置的代码可能如下所示,因为这应该涵盖几乎所有浏览器:

background: url('header-b.jpg');
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100%;

此外,您可以根据图像和/或空间的大小向背景添加更多 CSS:

background: url('header-b.jpg') no-repeat center center;

添加fixed 将锁定您的图像,但可以使用。

【讨论】:

【参考方案2】:

首先,您需要在 CSS 文件中添加 SCSS 扩展名,例如 main.css.scss

这样你就可以使用asset helpers,比如:

.background_image 
    background: image-url('header-bg.jpg');

如文档中所述,image-url("header-bg.jpg") 变为 "url(/assets/header-bg.jpg)"

您的标记当前为空 (div.background_image),因此您需要在样式中添加一些 height 以使其正常工作。

<header>
    <div class="background_image">
        <!-- no content -->
        <!-- add some content or specify some height -->
    </div>
  </header>

注意:要完成所有这些工作,您必须使用sass-rails gem (it's default in rails 4)。

【讨论】:

显然图像已经出现在浏览器中,但它非常小(想想细线),所以它似乎不存在。但是,添加诸如height:600px; 之类的属性会显示图像。当我拉伸浏览器时,不确定如何正确显示此图像。我需要 CSS 中的内容来使用浏览器在保持静态大小的同时缩放图像 你必须使用百分比(%)而不是固定值(px)

以上是关于在 Rails 4 中添加背景图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使我的背景图像仅出现在 rails 4 的一页上?

Rails:Jquery 模板不为背景图像创建哈希

Heroku Rails 4 静态背景图片未部署

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

如何在 Rails 中从 JQuery 更改 CSS(背景图像)?

Rails 4 + Sass - 生产中没有背景图片