跳转至

解决图片渲染问题

使用markdown-it渲染器,渲染编辑区域文档,发现图片无法显示。

调测过程中,使用本地文件url路径,发现依然无法显示

通过查询资料,发现在html标签<img>中,src可以通过file:///E:/github.com/hemy08/hemynotes/docs/900-个人项目/010-electron+vue构建HemyEditor/images/20240602173139文件管理器.png方式设置本地图片路径。

设置完成之后,依然无法显示,询问文心一言,有如下结果:

  • 在预加载脚本中配置 CSP: 实际上,Electron 的 CSP 是在 Chromium 渲染器进程中实现的,并且通常不能通过预加载脚本直接修改。但是,你可以通过预加载脚本来注入允许某些资源的代码,或者配置你的应用程序以允许加载特定的资源。 如果你确实需要绕过 CSP(这通常不推荐),你可能需要在预加载脚本中注入一些代码来修改或覆盖页面的 CSP 策略。但是,请注意,这样做可能会引入安全风险,并且可能违反你的应用程序的安全最佳实践。

  • 在 HTML 文件的 部分,你可以使用 标签来设置 CSP。但是,请注意,这种方法不如 HTTP 响应头中的 CSP 强大或灵活,因为某些指令可能不受支持或具有不同的行为。

    HTML
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:;">
    

看了工程的index.html文件,发现在head部分中有如下代码:

HTML
1
2
3
4
<meta
    http-equiv="Content-Security-Policy"
    content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"
/>

将这部分删除后,图片可以正常显示。

剩下的就是渲染问题了,需要在文件进行markdown-it渲染之前,或者之后,将图片路径设置为本地文件路径引用

这里也将图片进行了限制,当前图片宽度600px