【问题标题】:Make Asset Pipeline work with Chrome DevTools Autosave使资产管道与 Chrome DevTools 自动保存一起工作
【发布时间】:2012-04-01 16:18:54
【问题描述】:

Chrome DevTools Autosave 不适用于Rails Asset Pipeline。问题的罪魁祸首在于资产 URL——我无法通过 URL 破译实际的文件路径。例如,/assets/application.css 可以引用 app/assets/stylesheets/application.css、lib/assets/stylesheets/application.css、 或供应商/资产/样式表/application.css。

我想知道,如何将资产 URL 更改为以下之一:

  • /app/assets/stylesheets/application.css(完全匹配实际文件路径,完美解决)
  • /assets/application.css?source_url=app/assets/stylesheets/application.css(引入source_url查询参数)

如果为此编写 Rails 插件,我将不胜感激。


更新:我填写了an issue to sprockets

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-plugins asset-pipeline google-chrome-devtools


    【解决方案1】:

    我会努力让事情顺利进行,但我必须做更多的工作来验证或提供更好的答案,所以我会标记这个答案社区维基。这样其他人可以在下面回答或编辑此帖子。

    我必须为 Sinatra 设置资产管道,一般来说,在最新版本的 Sprockets(用于在 Rails 中提供资产管道)中,Sprockets::Asset 类具有获取 path and logical path 的方法.

    我相信 Rails 使用 asset_path 助手从 Sprockets 类生成面向公众的 url。这又似乎使用了AssetPaths#compute_public_path 实例方法。一个好的第一步是根据您对source.pathname 的解析来修改代码的这些部分以添加source_url 参数。 这是假设源是某种形式的Sprockets::Asset 的实例。

    【讨论】:

      【解决方案2】:

      我不太确定你期望的来源,但它已经由ActionView::Helpers::AssetTagHelper提供

      http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

      image_tag("rails.png")
      # => <img alt="Rails" src="http://assets.example.com/images/rails.png?1230601161" />
      
      stylesheet_link_tag("application")
      # => <link href="http://assets.example.com/stylesheets/application.css?1232285206" media="screen" rel="stylesheet" type="text/css" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多