我有一个本地存储的html文件,想在WebView2控件中显示它,所以我会使用
.Navigate("C:\temp\some.html")
,一切正常。 在这些 HTML 文件中,我有使用相对路径的 css 链接:
<link href="/service/css/rendering/rendering.css" rel="stylesheet">
当显示html时,由于无法解析相对路径,因此不会加载css。
现在我已经看到(但无法访问源代码)使用旧的 Windows WebBrowser Control 具有相对路径的 html 文件确实加载了 css 文件。
有没有办法设置域或类似的方法来解析WebView2控件中的相对路径? 我当前的选择是使用完整的网络路径更新文件,但如果可能的话我想避免这种情况。 由于这是流程的一部分,因此无法实时查看页面。
我没有提到我也希望脚本(如果存在)运行,因为我认为它们会以相同的方式处理,但是使用
<base>
测试它我发现CSS加载,但脚本不会加载,除非我给它们完整的路径,
添加
<base href ... />
确实会解析 css 位置(相对于基础),但它将为 html 中的所有其他相对路径(图像和其他资源。如果有的话)设置基础,这通常会相对于 html 解析文件的位置。
我宁愿保留资源的路径并设置 css 的绝对路径。