CEF加载本地HTML时样式错乱怎么办?

UX银银 阅读 2

我用CEF做桌面应用,加载本地HTML文件时发现CSS样式完全没生效,控制台也没报错。明明在浏览器里打开是正常的,放到CEF里就排版全乱了。是不是路径问题?但我试了绝对路径和相对路径都不行。

这是我的HTML结构:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="styles.css" rel="external nofollow" >
</head>
<body>
  <div class="container">Hello CEF!</div>
</body>
</html>

styles.css 就在同目录下,里面写了简单的 .container { width: 500px; background: red; },但页面上完全没效果,文字直接贴左上角了……

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
书生シ予曦
问题在于你用相对路径加载HTML时,CEF的base路径是程序当前目录不是你HTML文件所在的目录。

懒人方案:加载时用完整的file://绝对路径。

比如:
browser->GetMainFrame()->LoadURL("file:///D:/yourproject/index.html");

这样同目录下的styles.css就能正常找到了。

如果路径里有中文或空格,记得URL编码。
点赞
2026-03-12 20:14