报错含义
主进程(main.js)里 win.loadFile()/win.loadURL() 指向了
file:///.../app.asar/build/index.html,
但打包后真正的文件位于 app.asar 内部 ,路径拼错,于是 Chromium 报 Not allowed to load local resource → 空白页。
根因
electron-builder 把 build 目录放进了 app.asar,
而你用 loadFile 时把路径写成 file:// + 绝对路径,
多了一层 /app.asar/ 文件夹,导致找不到。
正确写法(生产环境)
-
用
loadFile:jsconst path = require('path'); win.loadFile(path.join(__dirname, '../build/index.html'));注意:
- 不要加
file://协议头; - 相对路径以打包后的目录结构为准。
- 不要加
-
或用
loadURL配合asar协议(不推荐,易出错):jswin.loadURL(`file://${__dirname}/../build/index.html`); -
确保 electron-builder 配置把
build目录打进去package.json → build → files 至少包含:
json"files": [ "build/**/*", "electron/**/*", "node_modules/**/*" ] -
删除旧产物再重新打包
bashrmdir /s /q dist npm run build-electron-win64 -
运行安装包
dist\Harbour-1.0.0-win-x64.exe,打开 DevTools,若不再出现
Not allowed to load local resource,页面即可正常渲染。