Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使资产管道与Chrome DevTools Autosave一起工作_Ruby On Rails_Ruby On Rails Plugins_Asset Pipeline_Google Chrome Devtools - Fatal编程技术网

Ruby on rails 使资产管道与Chrome DevTools Autosave一起工作

Ruby on rails 使资产管道与Chrome DevTools Autosave一起工作,ruby-on-rails,ruby-on-rails-plugins,asset-pipeline,google-chrome-devtools,Ruby On Rails,Ruby On Rails Plugins,Asset Pipeline,Google Chrome Devtools,不适用于。问题的罪魁祸首是资产URL——我无法通过其URL破译实际文件路径。例如,/assets/application.css可能指的是app/assets/stylesheets/application.css、lib/assets/stylesheets/application.css、, 或供应商/资产/样式表/application.css 我想知道,如何将资产URL更改为以下内容之一: /app/assets/stylesheets/application.css(完全匹配实际文件

不适用于。问题的罪魁祸首是资产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\u url=app/assets/stylesheets/application.css(引入source\u url查询参数)
如果您能为我编写Rails插件,我将不胜感激



更新:我填写了。

我会努力让事情进展顺利,但我还需要做更多的工作来验证或提供更好的答案,所以我会将这个答案标记为社区维基。这样其他人可以在下面回答或编辑这篇文章

我已经为Sinatra设置了资产管道,一般来说,在最新版本的Sprocket(用于在Rails中提供资产管道)中,
Sprocket::asset
类具有获取资产的方法


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

我不太确定您对源代码的期望如何,但它已经由
ActionView::Helpers::AssetTagHelper提供了

image\u标签(“rails.png”)
# => 
样式表链接标签(“应用程序”)
# => 
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" />