Chrome开发者工具 - 工作空间映射不匹配

18

我有一个远程网页,它加载了一个名为script.js的远程JavaScript文件。我无法立即访问远程文件系统以进行更改来测试某些内容。

因此,我将script.js复制到本地驱动器中,并在Chrome Dev Tools中将我的本地文件夹添加到工作区。然后我右键单击我的远程script.js文件并选择映射到文件系统资源...,再选择我的本地script.js

所以现在我期望我的本地script.js的更改会覆盖远程script.js,对吗?这样我就可以对我的本地script.js进行一些更改,当我重新加载页面时,可以看到页面上反映出的更改。

然而,在“Sources”选项卡中,当选择我的本地script.js时,我看到顶部的警告:

Workspace mapping mismatch

The content of this file on the file system:

file:///Users/me/test/script.js

does not match the loaded script: 

http://someserver.com/js/script.js

Possible solutions are:
- Reload inspected page
- Check that your file and script are both loaded from the correct source and their contents match

这是在告诉我本地的 script.js 文件需要与远程的 script.js 完全相同吗?如果是这样,那本地资源的作用是什么?

本地文件不是用来让你进行更改并在浏览器中看到这些更改的吗?如果它必须与远程文件匹配,那么你肯定已经有权限能够编辑远程文件,在这种情况下,你将在那里进行更改而不是在本地文件上进行更改。如果是这种情况,那么拥有本地资源映射的意义是什么?

我是否理解有误?在 Chrome Dev 工具中临时更改文件并在页面重新加载时反映这些更改不可能吗?我认为这就是 Local File System Resources 的目的。


1
谢谢您的发布。我的JavaScript文件也有同样的问题,但CSS文件没有问题。我本来想发布自己的问题的。 - GnrlBzik
你确定 DevTools 支持这个吗?我很确定只有本地文件才能保存实时编辑:https://dev59.com/iWMl5IYBdhLWcg3w1593#22624969。否则浏览器怎么能在页面重新加载后保留更改呢? - rstackhouse
如果您将远程文件映射到本地文件,则开发工具应该足够智能,以便在重新加载页面时加载本地文件而不是远程文件。至少我认为这就是此功能的用途。但也许我错了。 - Jake Wilson
@Jakobud,使用另存为肯定可以让您保存所做的任何更改,但如果您刷新页面,它不会重新加载它们。 - rstackhouse
@Jakobud 在文档的注意事项部分(最后一条)中提到了您所寻求的是可能的,但是我无法在不显示“网络映射不匹配”的情况下使其工作。"如果您在 Workspaces 中继续编辑,则更改仍会保留到磁盘并重新应用。" - rstackhouse
显示剩余6条评论
1个回答

13

Workspaces旨在映射与文件相同的文件,并通过网络提供服务。(例如将~/code/app提供给localhost:8000)。

它不能用于作为替代品提供本地文件的服务。有一些Chrome扩展程序可以做到这一点,我推荐使用Flip the Script


Paul Irish,如果我在localhost:8000上提供~/code/app服务,我会遇到这个错误。我甚至使用opendiff查看是否存在任何奇怪的行结束差异或其他问题。没有发现任何问题,没有任何差异。这也是间歇性的。有时它可以正常工作(例如当我重新启动我的2012年MacBook并重新启动Chrome时),有时它不起作用。 - rstackhouse
3
根据文档 https://developer.chrome.com/devtools/docs/workspaces,似乎表述的与之相反。 - Paul Legato
1
是啊,工作空间文档让人觉得这应该可以工作。弄得我很困惑。 但像Paul说的一样,有Chrome扩展程序。Switcheroo Redirector对我管用: https://chrome.google.com/webstore/detail/switcheroo-redirector/cnmciclhnghalnpfhhleggldniplelbg/related?hl=en - Dan Tello
对我来说也很困惑。官方文档应该描述如何将远程JavaScript文件映射到本地JavaScript文件并在localhost:8000上提供服务。 - kyanny
1
那么提供已经在线的完全相同的文件有什么意义呢? - wortwart
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接