C# 使用LoadHTML时未加载资源

C# 使用LoadHTML时未加载资源,c#,html,chromium-embedded,cefsharp,C#,Html,Chromium Embedded,Cefsharp,我使用的是在浏览器中显示html文件 当我使用web_view.Load(@“C:\htmlfile.htm”)显示我的身体背景 但是当我加载htmlfile.htm并使用web\u view.LoadHtml(File.ReadAllText(@“C:\in.htm”)主体背景不显示 我想问一下,我必须如何在html本地文件中设置地址正文背景 这是我的Html文件内容: <html> <body background="C:\Untitled.png"> </bo

我使用的是在
浏览器中显示html文件

当我使用
web_view.Load(@“C:\htmlfile.htm”)显示我的身体背景

但是当我加载
htmlfile.htm
并使用
web\u view.LoadHtml(File.ReadAllText(@“C:\in.htm”)主体背景不显示

我想问一下,我必须如何在html本地文件中设置地址正文背景

这是我的Html文件内容:

<html>
<body background="C:\Untitled.png">
</body>
</html>

您必须实现
IRequestHandler.OnBeforeResourceLoad()
,拦截每个请求,自己从磁盘读取字节,并将其作为响应提供给chromium

试试这个:

web_view.LoadHtml(File.ReadAllText(@"C:\in.htm"), @"C:\in.htm");

第二个参数表示URL,如果URL是本地资源,那么页面将能够加载本地资源。

另一种方法是使用schemeHandler(它更干净)

  • 向基金注册计划-
CEF.RegisterScheme(“ascheme”,新HandlerFactory())

  • 添加从磁盘加载PNG并返回相关响应的方案处理程序

  • 然后更改html以引用方案:

正文背景=”myscheme://Untitled.png"

如果需要,我可以填空。。。但这应该足够了