Visual studio code vscode扩展iconPath

Visual studio code vscode扩展iconPath,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在开发VSCode扩展,它使用WebView显示附加数据。除了webview图标外,我工作正常 如果未指定任何内容,则图标为: 我正在阅读文档,注意到WebViewallowiconPath选项的格式如下: 我已尝试使用以下代码添加图标: const onDiskPath = vscode.Uri.file( path.join(context.extensionPath, 'resources', 'my-icon.svg') ); panel.iconPath = pane

我正在开发VSCode扩展,它使用
WebView
显示附加数据。除了webview图标外,我工作正常

如果未指定任何内容,则图标为:

我正在阅读文档,注意到
WebView
allow
iconPath
选项的格式如下:

我已尝试使用以下代码添加图标:

const onDiskPath = vscode.Uri.file(
    path.join(context.extensionPath, 'resources', 'my-icon.svg')
);

panel.iconPath = panel.webview.asWebviewUri(onDiskPath);
但我有一个错误:

拒绝加载映像的vscode-resource://file///f:/dev/my-extension/resources/my icon.svg”,因为它违反了以下内容安全策略指令:“img src'self'https:data:blob:vscode远程资源:”

在webview html中,以下内容策略可用:

<meta http-equiv="Content-Security-Policy" 
        content="default-src 'none'; img-src vscode-resource: https:; script-src 'nonce-${nonce}';">

(我尝试过修改内容策略,但没有任何改变。显示了相同的错误)


内容策略或图标路径的生成方式是否存在问题?(或者是完全不同的:)

我想你误解了“webview URI”的含义——它用于webview中使用的资源。对于
iconPath
您需要一个常规文件URI,因此它应该简单到:

panel.iconPath=onDiskPath;