4

我正在使用 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 文件中的资产文件夹中引用图像来解决这个问题吗?

4

3 回答 3

4

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

此外,请确保在 sass-rails 之前加载 compass,因为 sass-rails 会覆盖资产方法以使用资产管道。

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

load 'deploy/assets'

在部署时启用资产编译。

于 2011-08-29T03:37:03.980 回答
2

在这篇文章中查看“tybro0103”的答案 - Rails 3.1 and Image Assets

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

部署前预编译

免责声明:我自己没有尝试过

于 2011-07-13T18:24:44.693 回答
-1

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

即asset_url("some.img","image)

于 2011-09-01T14:09:37.757 回答