开发electron时候Chromium 报 Not allowed to load local resource → 空白页。

报错含义

主进程(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/ 文件夹,导致找不到。

正确写法(生产环境)

  1. 用 loadFile:

    js 复制代码
    const path = require('path');
    win.loadFile(path.join(__dirname, '../build/index.html'));

    注意:

    • 不要加 file:// 协议头;
    • 相对路径以打包后的目录结构为准。
  2. 或用 loadURL 配合 asar 协议(不推荐,易出错):

    js 复制代码
    win.loadURL(`file://${__dirname}/../build/index.html`);
  3. 确保 electron-builder 配置把 build 目录打进去

    package.json → build → files 至少包含:

    json 复制代码
    "files": [
      "build/**/*",
      "electron/**/*",
      "node_modules/**/*"
    ]
  4. 删除旧产物再重新打包

    bash 复制代码
    rmdir /s /q dist
    npm run build-electron-win64
  5. 运行安装包 dist\Harbour-1.0.0-win-x64.exe,

    打开 DevTools,若不再出现 Not allowed to load local resource,页面即可正常渲染。

相关推荐
Mr_Mao17 分钟前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒1 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
默_笙1 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
YIAN1 小时前
从跨域代理到 WebSocket:梳理前端实时通信的底层逻辑与完整实践
前端·websocket
一曲终散1 小时前
创建 SVG 图标预览页面:从零实现到解决 CORS 问题
前端
静默回滚2 小时前
iPhone照片电脑上打不开:HEIC解码从原理到WASM
前端
dsyyyyy11012 小时前
Vue 3 Watch 监视完全指南
前端·javascript·vue.js
航飞光电市场经理2 小时前
人员定位系统“全栈自研”技术解析:从射频前端到定位引擎的架构拆解
前端·架构
Apifox2 小时前
Apifox 9 月更新|CLI 能力升级、GitLab 私有化部署接入与产品体验优化
前端·后端·测试
deli0072 小时前
随机乱跳为什么能画出完美三角形:混沌游戏分形实验室
前端