使资产管道与 Chrome DevTools 自动保存一起工作

Posted

技术标签:

【中文标题】使资产管道与 Chrome DevTools 自动保存一起工作【英文标题】:Make Asset Pipeline work with Chrome DevTools Autosave 【发布时间】: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。

【问题讨论】:

【参考方案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  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" />

【讨论】:

以上是关于使资产管道与 Chrome DevTools 自动保存一起工作的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails 更少的源地图和资产管道?

chrome devtools protocol——Web 性能自动化

Chrome Devtools控制台自动完成密钥快捷方式更改

Chrome Devtools 控制台自动完成键快捷键更改

chrome devtools protocol——Web 性能自动化实践介绍

0202年了, Chrome DevTools 你还只会console.log吗 ?