在 VSCode 扩展 Web 视图中从 HTML 加载引用的文件

Fer*_*sel 5 html webview visual-studio-code vscode-extensions

我目前正在尝试加载一个 .html 文件,该文件引用了 .css 和 javascript 文件,以及其他 .html 文件,这些文件又引用了更多其他文件。

当我将 .html 和所有引用的文件上传到 github 页面时,我可以将其加载到 vscode 扩展 webview 中,并且它可以完美运行。

当我尝试在本地执行此操作(因此,将所有 .html、.css 和 javscript 文件放入我的扩展目录中)时,我可以加载初始 html,但没有加载任何引用的文件。

文档(https://code.visualstudio.com/api/extension-guides/webview#loading-local-content)告诉我,vs code 在涉及本地文件时非常严格,这些引用应该使用Webview.asWebviewUri.

这可以帮助我加载初始页面,但如何更新所有这些引用?在 VS Code 教程中完成的方法是将 .html 硬编码到脚本中,单独加载所有引用的文件Webview.asWebviewUri,并将新的引用链接注入到所有需要的位置。我认为这对我来说并不是一个好的选择,因为有很多文件需要加载,而且,如果必须从主 .html 加载的 .html 文件加载某些内容,它将无法工作文件。

几个问题:

  1. 为什么 vscode 对本地文件的限制如此之大,但对来自网络的文件却完全不受限制?网络文件不应该被视为“更危险”吗?
  2. 有没有办法将文件夹标记为“此文件夹中的文件很好,只需加载它们”?我知道有,WebviewOptions.localResourceRoots但据我了解,我仍然必须使用 转换引用 Webview.asWebviewUri,然后将其注入到 html 中,以便加载引用的文件。
  3. 我没有看到任何解决方案吗?