ruby-on-rails - Rails 3.1 Assets 管道和缓存

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

我正在使用 Rails 3.1 的 Assets 管道,虽然它在我的本地主机上的开发环境中似乎完美无缺,但我在引擎场上遇到了巨大的问题。

这是我的基本问题。

当我在我的 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 ,浏览器仍会请求 /assets/shade.png而不是 /assets/shade-FINGERPRINT.png这是存在的实际文件。

有谁知道我可以通过在我的 .scss 文件中的 Assets 文件夹中引用图像来解决这个问题吗?

最佳答案

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

此外,请确保在 sass-rails 之前加载指南针,因为 sass-rails 会覆盖 Assets 方法以使用 Assets 管道。

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

load 'deploy/assets'

在部署时启用 Assets 编译。

关于ruby-on-rails - Rails 3.1 Assets 管道和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683584/

相关文章:

ruby-on-rails - 如何列出 ruby​​ 中给定对象的所有可用方法,而不是内置方法

ruby-on-rails - Rails 4 where,order,group,count include zero's - postgresql

ruby - rails3.1 自动加载失败

ruby-on-rails - Rails3 Controller 操作中的条件语句

css - Jekyll 水平导航栏问题

mysql - 如何在不检查数据库中是否存在的情况下生成 8 个字符的唯一字符串

ruby-on-rails - 启动 Rails 服务器时 "Uncaught exception: no acceptor (port is in use or requires root privileges)"

ruby-on-rails - HTML5 Boilerplate 对 Rails 应用程序的值(value)是什么?

CSS Grid - 为响应式屏幕格式化行和列

css - 在 Angular 2 中使用 Sass