本地文件系统中的电子JS图像

Aft*_*eed 7 electron

我是电子新手并试图从本地文件系统加载图像以在屏幕上显示它.因此,当我这样做时,来自远程URL的图像工作得很好

<img src='https://example.com/image.jpg' />
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在渲染过程中从本地文件系统加载相同的图像时,它不起作用

<img src='file:///C:/tmp/image.jpg' />
Run Code Online (Sandbox Code Playgroud)

没有呈现.

这是我得到的错误:

> Not allowed to load local resource:
> file:///C:/tmp/nW4jY0CHsepy08J9CkF1u3CJVfi4Yvzl_screenshot.png
> dashboard:1 Not allowed to load local resource:
> file:///C:/tmp/TOyUYWnJK7VS9wWeyABhdgCNmp38FyHt_screenshot.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是否需要进行任何配置以允许电子从本地文件系统渲染图像或者我完全错了?

小智 9

默认情况下,Electron仅在file://出于安全原因使用协议从本地源加载html文件时才允许渲染进程访问本地资源.

如果您从任何协议http://https://协议加载html,甚至从webpack-dev-server等本地服务器加载,则禁用对本地资源的访问.

如果仅在开发期间从本地服务器加载html页面并切换到生产中的本地html文件,则可以在开发期间禁用websecurity,并注意在生产中启用它.

如果您甚至在生产中从远程源加载html,最好的安全方法是将其上传到服务器上的某个位置并加载它.