我有一个Rails 3.1项目,assets资源 管道运行良好.问题是我需要在我的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提出了两个建议:
- 不要将assets资源 管道用于图像——而是将它们放在
public/images/
中,并直接引用它们 - 对CSS使用ERB,并让Rails计算出图像URL.
1号当然是一种可能性,尽管这意味着我不会在我的图像上 destruct 缓存.第二个是因为我使用的是Sass,而不是ERB来处理文件.