4

这应该是一件简单的事情,但由于某种原因它不起作用。

我无法在我的页面上显示背景图片。我正在使用带有资产管道的 Rails 3.2。我正在尝试在与我的家庭控制器相关的页面上显示它。

图片位置为:app/assets/images/dna.jpg

主页.css.scss

background: url('/assets/images/dna.jpg');

我还尝试了以下方法:

background: url('dna.jpg');
background: url('/assets/dna.jpg');
background-image: image-url("dna.jpg");
background-image:url(image_path('dna.jpg'));

无论我尝试哪种方法,我都会遇到相同的错误:

Sass::SyntaxError at /
Invalid CSS after "background:": expected pseudoclass or pseudoelement, was "   url('/assets/i..."

(在 /Users/sean/Dropbox/bin/rails/assay/app/assets/stylesheets/home.css.scss)

另请参阅此 SO 帖子:在 CSS 中的 Ruby on Rails 2 中添加背景图像

编辑

参考这篇帖子:sass-rails资产管道:生成图片路径不正确;`url(/images/blah.png)` 而不是 `url(/assets/blah.png)`

我清除了资产缓存

rake tmp:cache:clear

并且 bundle 更新了我的sass-rails gem。现在是3.2.6。这些都没有任何区别。

4

3 回答 3

5

我怀疑你的麻烦有一个非常简单的原因:缩进。大多数scss情况下,在您的情况下,语句后没有空格background:。在你的 scss 前缀文件中也试试这个:

background: url(dna.jpg);

它总是对我有用。

于 2013-07-07T17:38:24.527 回答
1

我找到了一种解决方法:将scss文件转换为普通的 css 文件。

主页.css

body {background-image:url('dna.jpg');
      background-size:cover;}

现在它工作正常。不过,这似乎不是正确的解决方案。

于 2013-07-07T12:30:33.207 回答
1

我遇到了完全相同的问题,这是我在 SCSS 文件中使用 Sass 缩进语法的结果。

有关 Sass 和 SCSS 之间差异的更多信息:http: //sass-lang.com/documentation/file.INDENTED_SYNTAX.html

于 2014-01-22T16:00:30.637 回答