使资产管道与 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 自动保存一起工作的主要内容,如果未能解决你的问题,请参考以下文章
chrome devtools protocol——Web 性能自动化
Chrome Devtools控制台自动完成密钥快捷方式更改