【发布时间】:2011-06-18 01:36:38
【问题描述】:
我有一个 Rails 3.1 项目,资产管道运行良好。问题是我需要在我的 Sass 中引用图像,但 Rails 会计算图像 URL。 (这在生产环境中尤为重要,Rails 将图像的 Git 哈希值附加到其文件名中以进行缓存。)
例如在app/assets/stylesheets/todos.css.scss:
.button.checkable { background-image: url(/assets/tick.png); }
当我部署(或运行rake assets:precompile)时,文件app/assets/images/tick.png 被移动到public/assets/tick-48fe85c0a.png 或类似的东西。这打破了CSS。 This post 提出两个建议:
- 不要对图片使用资产管道 - 而是将它们放在
public/images/中并直接引用它们 - 为您的 CSS 使用 ERB,并让 Rails 计算出图像 URL。
第 1 号当然是可能的,尽管这意味着我的图像不会被缓存破坏。第 2 项已退出,因为我使用的是 Sass,而不是 ERB 来处理文件。
【问题讨论】:
标签: ruby-on-rails css ruby-on-rails-3 sass sprockets