【问题标题】:Adding a background image in Ruby on Rails 2 in CSS在 CSS 中的 Ruby on Rails 2 中添加背景图像
【发布时间】:2012-02-19 21:48:13
【问题描述】:

我在 ruby​​ 中生成了一个脚手架,我想在网站上的每个页面中插入一个背景图片,但我不确定图片的链接应该是什么。

我的图片在app/assets/images/"dep.jpg"

这是我拥有的,但它不起作用:

background-image:url('../images/dep.jpg');
}

有什么帮助吗?谢谢

【问题讨论】:

  • 尝试给出确切的路径。因为即使文件夹 /public 也有 images 文件夹,我认为它正在寻找那里而不是你的路径
  • 这取决于你的文件在哪里,相对于你的图像目录。 ../ 表示从当前文件位置上移一个目录并查找图像目录。你的目录结构是什么样的?
  • 我的 rails 项目文件夹名为 ClassSchedule/apps/assets/images/dep.jpg
  • 包含这一行的文件在哪里:background-image:url('../images/dep.jpg');
  • 在我位于 ClassSchedule/apps/assets/stylesheets/scaffold.css 的 css 文件中

标签: ruby-on-rails css background-image


【解决方案1】:

在 Rails 3.1 中,路径实际上是 `/assets/dep.jpg':

background-image: url(/assets/dep.jpg);

如果你将你的scaffold.css 文件转换为一个Sass 文件(重命名为scaffold.css.scss),那么你可以使用帮助器:

background-image: image-url("dep.jpg");

【讨论】:

    【解决方案2】:

    rails 中的网络服务器将public 文件夹作为应用程序的基础。因此它在/public/images/而不是app/assets/images/"dep.jpg"下寻找特定图像,因为它不在那里,你无法获得图像。尝试将您的图像放入/public/images/ 文件夹中即可。

    编辑:如果您使用的是 rails 3.1,那么这将有所不同,因为 Rails 3.1 为您的应用程序的资产使用资产管道的概念,因此路径 app/assets/images/dep.jpg 显然可以工作。

    【讨论】:

    • 我对 Rails 有点陌生,所以我不确定公用文件夹在哪里。我只是使用 Rails 服务器在 localhost 上运行它
    • public 文件夹存在于您的 rails 应用程序的根文件夹中。层次结构类似于<yourrailsappname>/public/images
    • 我的公用文件夹没有图像文件夹,我应该做一个还是应该把它放在公用文件夹中?
    • 创建一个文件夹 images 并将其放在那里,这样您就可以将所有 image-type 文件放在一个地方。
    • 它与 CSS 有关。您必须像这样将属性设置为no-repeat。 &如果有帮助,请不要忘记给我的回答打分。
    【解决方案3】:

    如果你的图片在app/assets/images/dep.jpg,那么在rails的css文件中你应该写background: url('/assets/dep.jpg');

    您不必以这种方式将图像放入公用文件夹中。

    【讨论】:

      【解决方案4】:

      背景:url('/assets/image_name.jpg');

      这在 Rails 4.0 中对我有用

      【讨论】:

      • 声音,这是我的第一天
      • 酷! Rails 是这样的:)
      【解决方案5】:

      你肯定可以使用绝对路径:

      background-image:url('/images/dep.jpg');
      

      【讨论】:

      • 我想知道,既然 Rails 将 public 作为基本文件夹,你不认为即使他确实应用了绝对路径,除非网络服务器通过一些奇怪的调整访问文件,否则它不会工作?
      【解决方案6】:

      如果您使用的是现代版本的 rails(我相信是 3.1 或更高版本),您可以使用:

      background: url('../dep.jpg');
      

      由于 css 也存在于您的资产文件夹中,.. 自动引用资产文件夹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        • 2018-11-26
        • 2015-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多