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”)