Rails 3.1资产管道和缓存

时间:2011-07-13 18:15:15

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

我正在使用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文件中的资源文件夹中引用图片时,是否有人知道我可以解决这个问题?

3 个答案:

答案 0 :(得分:4)

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

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

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

load 'deploy/assets'

在部署时启用资产编译。

答案 1 :(得分:2)

在此帖子上查看“tybro0103”的答案 - Rails 3.1 and Image Assets

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

部署前预编译

免责声明:我自己没试过这个

答案 2 :(得分:-1)

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

即。 ASSET_URL( “some.img”,“图像)