ruby-on-rails - SCSS 文件中的 Rails 3.1 资源 url 似乎没有正确引用资源

标签 ruby-on-rails ruby-on-rails-3.1 sass asset-pipeline

我刚刚从 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/

相关文章:

css - 在 Rails 中使用 sass 的正确方法

javascript - 点击浏览器 "back"按钮显示 JSON 而不是 HTML(使用 Rails 和 d3.js)

ruby-on-rails - 从 Rails 应用程序中的现有 Controller 、模型和 View 生成所有 RSpec 规范文件

ruby-on-rails - rspec DatabaseCleaner 跳过清理例如组元数据标签

ruby-on-rails - 如何在默认范围内按相关型号订购? -- rails 3.1

ruby-on-rails - 如何在 Rails 3.1 Assets 管道中动态要求 Assets ?

ruby - Docker-compose-Ruby- compass -inotify

ruby-on-rails - 如何自动将 Heroku pgbackups 发送到 S3

ruby-on-rails-3.1 - Assets 管道、 compass 字体和 eot?iefix 对字体的调用

css - SASS:执行多种颜色操作?