【问题标题】:asset sass helpers: difference between image_url and image-url资产 sass 助手:image_url 和 image-url 之间的区别
【发布时间】:2014-11-29 21:38:37
【问题描述】:

我注意到帮助程序 image_url 和 image-url 在我的 scss 文件中都有效,但它们生成的路径不同。这两个函数有什么区别?

虽然我检查了asset.prefix 路径的环境配置,但它们在渲染资产时会生成不同的前缀。

【问题讨论】:

标签: ruby-on-rails sass assets


【解决方案1】:

它是同一个助手。来自documentation

使用资产管道时,必须重写资产路径,并且 sass-rails 提供 -url 和 -path 帮助程序(在 Sass 中连字符在 Ruby 中加下划线 ) 用于以下资产类别:图像、字体、视频、音频、JavaScript 和样式表。

-url 用于 sass,_url 用于 Ruby。

在 css 和 sass 中,函数使用连字符分隔的词是惯例;而在 Ruby 中,使用 snakecase 是惯例。

这两个函数应该具有相同的行为,因此会生成指向相同资产目录的路径。如果没有,那么您可能遇到了类似于以下内容的错误:sass-rails asset pipeline: generating image paths incorrectly; `url(/images/blah.png)` instead of `url(/assets/blah.png)`

【讨论】:

    【解决方案2】:

    这是主要区别

    对于被称为asset_urlurl_to_asset 方法的图像url 使用type image,所以它将转到图像目录

       url_to_asset(source, {type: :image}.merge!(options))
    

    对于资产 url,您可以调用 js 或任何其他资产(视频、音频、样式表..)

     path_to_asset(source, options.merge(:protocol => :request))
    

    https://github.com/rails/rails/blob/d4b0e5f59f599a386d43a7f4d005430e87ae7ec4/actionview/lib/action_view/helpers/asset_url_helper.rb#L316

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 1970-01-01
      • 2017-10-15
      • 2023-03-06
      • 1970-01-01
      • 2015-03-22
      • 2021-03-06
      • 2023-04-05
      • 2013-07-13
      相关资源
      最近更新 更多