我刚刚从 Rails 3.0 升级到 Rails 3.1。
我有一个 foo.css.scss
文件,它引用图像 (/app/assets/images/foo.png
),如下所示:
.foo {
background-image: image-url('foo.png');
}
问题是我的 foo.png
文件未加载,并且我在日志中看到 404 错误。
生成的实际 css 条目是:
background-image: url(/images/foo.png);
这是错误的(?),因为图像可以在 /assets/foo.png
中找到,而不是在 /images/foo.png
中找到。
请注意,我仍在开发
模式下工作。
另一个重要说明。如果我将 foo.css.scss
文件重命名为 foo.css.erb
并使用:
background-image: url(<%= image_path('foo.png') %>);
它工作正常,因为它生成 /assets/foo.png
。
所以,问题是为什么我的 scss
预编译器没有生成正确的 css
?
更新:我的foo.css.scss
文件位于:
app/assets/stylesheets/sub_dir/foo.css.scss
这有什么区别吗?
最佳答案
您可以尝试:
.foo {
background: url("/assets/foo.png")
}
应该可以正常工作。希望它有帮助:)
关于ruby-on-rails - SCSS 文件中的 Rails 3.1 资源 url 似乎没有正确引用资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638989/