在 Electron 窗口中禁用 webSecurity 是显示本地图像的唯一方法吗?

Un1*_*Un1 3 webpack electron

我希望我的 Electron 应用程序显示本地图像:

<!-- file.path has value of C:/Users/name/Desktop/1.png -->
<img :src="file.path">
Run Code Online (Sandbox Code Playgroud)

但是当我使用图像标签时,我收到此错误:

Not allowed to load local resource: file:///C:/Users/name/Desktop/1.png

题:

据我了解,为了能够加载本地图像,我必须通过添加来关闭 webSecurity webPreferences: { webSecurity: false }

  • 这样做安全吗?禁用webSecurity在主窗口上调用的东西听起来不安全

  • 这真的是电子应用程序可以显示位于应用程序目录之外的用户本地图像的唯一方式吗?


PS 这是一个 Electron-Vue 项目。它使用 webpack。

Tim*_*Tim 5

Electronfile://在从非文件 URL(在您的情况下为http://localhost:9080)运行页面时不会加载url 。

这意味着您只需要webSecurity在处于开发模式并从 Webpack 开发服务器运行时禁用。

在生产中,您可以webSecurity在从文件加载时保持启用状态:file://${__dirname}/index.html

  • `webPreferences: { webSecurity: process.env.NODE_ENV !== '开发' }` (2认同)