Ruby on rails 在CSS中的RubyonRails2中添加背景图像

Ruby on rails 在CSS中的RubyonRails2中添加背景图像,ruby-on-rails,css,background-image,Ruby On Rails,Css,Background Image,我用ruby生成了一个脚手架,我想在网站的每个页面上插入一个背景图片,但我不确定图片的链接应该是什么 我的图像位于app/assets/images/“dep.jpg” 这就是我所拥有的,但它不起作用: background-image:url('../images/dep.jpg'); } 有什么帮助吗?谢谢rails中的Web服务器将public文件夹作为应用程序的基础。因此,它在/public/images/下查找特定图像,而不是app/assets/images/“dep.jpg”&因

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

我的图像位于
app/assets/images/“dep.jpg”

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

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

有什么帮助吗?谢谢

rails中的Web服务器将
public
文件夹作为应用程序的基础。因此,它在
/public/images/
下查找特定图像,而不是
app/assets/images/“dep.jpg”
&因为它不在那里,所以您无法获取图像。试着把你的图像放到
/public/images/
文件夹中,它就会工作


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

您可以肯定地使用绝对路径:

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

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

background-image: url(/assets/dep.jpg);
如果将scaffold.css文件转换为Sass文件(重命名为
scaffold.css.scss
),则可以使用帮助程序:

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

如果您的图像位于
app/assets/images/dep.jpg
,那么您应该在rails中的css文件中写入
background:url('/assets/dep.jpg')

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

background:url('/assets/image_name.jpg')


这在Rails 4.0中对我很有用,如果您使用的是Rails的现代版本(我相信是3.1或更高版本),那么您可以使用:

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

因为css也存在于您的资产文件夹
自动引用资产文件夹。

尝试给出确切的路径。因为即使是文件夹
/public
也有
图像
文件夹,我认为它是在那里而不是在你的路径上查看的,这取决于你的文件在哪里,相对于你的图像目录
。/
表示从当前文件位置向上搜索一个目录,然后查找图像目录。目录结构是什么样子的?我的rails项目文件夹名为ClassSchedule/apps/assets/images/dep.jpg,其中包含以下行的文件:
background image:url('../images/dep.jpg')
在我的css文件中,位于ClassSchedule/apps/assets/stylesheets/scaffold.cssim,这对rails来说是一种新的功能,所以我不确定公用文件夹在哪里。我只是使用rails服务器在本地主机上运行这个
public
文件夹存在于
rails
应用程序的根文件夹中。层次结构类似于
/public/images
我的公用文件夹没有图像文件夹,我应该创建一个还是将其放在公用文件夹中?创建一个文件夹
images
&将其放在那里,以便您可以将所有
图像类型
文件放在一个位置。这与CSS有关。您必须像那样将属性设置为
no repeat
如果有帮助,请别忘了给我的答案打分。我在想,既然Rails将
public
作为基本文件夹,你不认为即使他应用了绝对路径,它也不会工作,除非&直到Web服务器通过一些奇怪的调整来访问该文件吗?听起来,这是我的第一天!!就像现在这样:)