【问题标题】:Rails 3.1 Asset Pipeline - Why should I use the Asset Helpers in a SCSS file?Rails 3.1 Asset Pipeline - 为什么要在 SCSS 文件中使用 Asset Helpers?
【发布时间】:2011-12-18 09:04:00
【问题描述】:

我刚刚进入资产管道;我正在使用 SASS/SCSS,但我不明白为什么我应该使用 Asset Helpers。

例如,如果我有一些 CSS/SCSS 而不使用 Asset Helper:

background-image: url('rails.png');

这可以正常工作,因为我的 .SCSS 文件和图像都在 assets 目录中并且可以通过 assets 目录访问。

这样做有什么意义?:

background-image: asset-url("rails.png", image);

我知道它会在 url 中添加“/assets/”,但如果标准 CSS 方式可行,我为什么要使用 Asset Helpers?

我想我错过了一些东西。它与部署到生产环境有关吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 sass assets asset-pipeline


    【解决方案1】:

    使用帮助程序可让您访问生产环境中的指纹 URL。来自Asset Pipeline guide

    在生产环境中,Rails 使用上述指纹方案。默认情况下,假定资产已被预编译,并将由您的 Web 服务器作为静态资产提供。

    在预编译阶段,从已编译文件的内容生成 MD5,并在将文件写入光盘时插入文件名。 Rails 助手使用这些指纹名称代替清单名称。

    所以在生产中,路径附加了一个 MD5,你有这样的东西:

    /assets/pancakes-af27b6a414e6da00003503148be9b409.png
    

    有了校验和,Rails 可以告诉浏览器永久缓存这些文件。然后,如果您发布一个更改您的资产之一的新版本,则校验和会更改并更改整个路径;新路径使浏览器认为它是一个全新的文件,因此它将再次获取它。如果没有校验和,您很容易将旧文件卡在浏览器缓存中,而这种事情并不完全是愉快的时光。

    【讨论】:

    • 啊,是的,我知道它必须是这样的。感谢您的回复。
    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2013-07-17
    • 2012-01-31
    • 2011-11-24
    • 1970-01-01
    相关资源
    最近更新 更多