电子应用程序中带有文件图像URL的“不允许加载本地资源”

时间:2019-10-15 01:06:52

标签: electron

我正在研究使用Markdown的电子记事本应用程序。目前,我正在尝试将图像插入笔记(使用Markdown语法)。

插入图像时,我的主过程将图像复制到notes目录中,然后将file:/// URL返回到图像文件。但是,当我尝试渲染图像时,它不会加载-并且出现错误Not allowed to load local resource: file:///Users/joe/notes/images/foo.jpg

有没有一种方法可以配置Electron允许这些本地图像URL?

2 个答案:

答案 0 :(得分:1)

您需要注册文件协议才能删除 file:/// 前缀。

import { protocol } from "electron";

app.whenReady().then(() => {
  protocol.registerFileProtocol('file', (request, callback) => {
    const pathname = decodeURI(request.url.replace('file:///', ''));
    callback(pathname);
  });
});

https://github.com/electron/electron/issues/23757#issuecomment-640146333

答案 1 :(得分:0)

选项1

关闭网络安全性

mainWindow = new BrowserWindow({
  height: 563,
  useContentSize: true,
  width: 1000,
  webPreferences: {
    webSecurity: false
}
});

选项2

您可以创建自己的协议like this answer

这也是回答这个问题的user