Rails 3.1资产管道和缓存

我正在使用Rails 3.1的资产管道,虽然它似乎在我的本地主机上的开发环境中完美运行,但我在引擎码上遇到了很多问题。

这是我的基本问题。

当我在我的一个scss文件中包含背景图像时:

a { color: #3c7f8b; font-weight: bold; padding-left: 35px; font-size: 13px; display: block; background: white url(shade.png) top right; &:hover { color: #222222; background: white url(shade2.png) top right; } &.on { color: #222222; background: white url(shade2.png) top right; } } } 

我遇到了以下问题:即使我已经预编译了我的资产,浏览器也会请求/assets/shade.png而不是/assets/shade-FINGERPRINT.png这是存在的实际文件。

有人知道我可以解决这个问题,引用我的.scss文件里面的资产文件夹中的图像吗?

在这篇文章中查看’tybro0103’的答案 – Rails 3.1和Image Assets

基本上将文件从scss更改为scss.erb,然后使用asset_path帮助器方法

部署前预编译

免责声明:我自己没试过

在Rails 3.1中使用scss时,您应该使用image-url而不是url来引用图像。

此外,确保在sass-rails之前加载罗盘,因为sass-rails超越资产方法以使用资产管道。

最后,如果您使用capistrano进行部署,请添加

 load 'deploy/assets' 

在部署时启用资产编译。

qnm实际上我认为image_url帮助器有错误。 不确定他们是否修复了它但是我看到了建议使用asset_url并说明了“图像”。

即asset_url(“some.img”,“image”)