You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron+Angular应用控制台报net::ERR_FILE_NOT_FOUND错误求助

解决Electron加载Angular打包资源时的net::ERR_FILE_NOT_FOUND错误

我帮你定位到问题核心了:这是Angular打包生成的base href配置和Electron的本地文件协议(file://)不兼容导致的。

问题原因分析

当你用ng serve运行时,Angular处于web服务器环境,<base href="/">表示根路径是服务器根目录,资源加载完全正常。但Electron是直接加载本地文件,此时<base href="/">会指向你的系统根目录(比如C:/),而非项目的dist文件夹,所以才会出现net::ERR_FILE_NOT_FOUND错误——它跑去系统根目录找polyfills.bundle.js这些文件,自然找不到。

从你的文件内容也能印证这一点:

  • 你src目录下的index.html设置的是<base href="./">(相对路径),但打包后dist目录下的index.html被自动改成了<base href="/">(绝对路径),这是Angular默认打包的行为。

解决方案

这里有两种可行的解决办法:

1. 打包时指定相对路径(推荐)

在执行Angular打包命令时,加上--base-href ./参数,让打包工具直接生成适配本地文件的相对路径配置:

# 生产环境打包
ng build --prod --base-href ./

# 开发环境打包
ng build --base-href ./

执行这个命令后,dist/index.html里的<base href="/">会自动变成<base href="./">,所有资源引用都会以dist文件夹为基准,Electron就能正确加载了。

2. 手动修改已打包的index.html(临时应急)

如果已经完成打包不想重新跑命令,可以直接编辑dist/index.html,把:

<base href="/">

改成:

<base href="./">

保存后重新用Electron加载dist/index.html,资源就能正常找到了。

额外验证

修改完成后,你可以检查dist/index.html里的js、css引用路径,比如src="inline.9c6676de3e2948b5be6b.bundle.js"这种不带斜杠的相对路径,同时favicon的错误也会跟着解决——它会指向dist文件夹下的favicon.ico,而不是系统根目录的C:/favicon.ico。

内容的提问来源于stack exchange,提问作者junaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:46:57