Why might Chrome (inside Electron) suddenly redirect to chrome-error://chromewebdata?
Why might Chrome (inside Electron) suddenly redirect to chrome-error://chromewebdata?
我的电子应用程序随机重定向到 chrome-error://chromewebdata
,我不知道为什么。控制台等没有报错
当 Electron 应用程序首次启动时,window 打开,它从我的应用程序重定向到那个 URL,我看到一个空白的空白屏幕。不需要用户交互,它只会在应用程序启动时发生。
如果我打开 devtools,我可以看到 window.location.href
包含 chrome-error://chromewebdata
而不是 http://localhost:9080
(Electron 应用程序使用本地主机 URL 运行)。
我尝试删除位于 ~/Library/Application Support/my-app-name
的本地 Electron/Chrome 数据文件夹并重新开始,但没有成功。
Chrome(在 Electron 中?)可以决定重定向到 chrome-error://chromewebdata
的原因是什么?
出于某种原因,您的代码试图导航到无效(不存在)URL,然后导致 window.location.href
变为 chrome-error://chromewebdata
。
重申:没有直接重定向到 chrome-error://chromewebdata
,而是重定向到不存在或无法访问的 URL。
检查您的代码是否导致此导航(可能是重定向)。检查 DevTools 中的网络选项卡非常有用,确保选中 "Preserve log"。这应该给出一些关于到底发生了什么的指示。
我在基于 Angular 的 Electron 项目中遇到了这种情况。在我的例子中,问题是 Angular 的 Webpack 服务器在我第一次启动项目时还没有准备好接收请求。这仅在启动时发生,简单的重新加载就可以绕过它 - 对 Angular 代码的任何实时更改都将毫无问题地刷新页面。
这在生产中不是问题,因为我切换到在我的版本中加载静态文件。
为了让它不那么烦人,我在我的电子启动中添加了延迟:
"start": "concurrently -k \"ng serve\" \"npm run delay && nodemon\"",
"delay": "node -e \"setTimeout(() => true, 3000)\"",
其中:
- concurrently 同时运行 Electron 和 Angular/Webpack 以加快开发速度。
- nodemon 观看我的电子文件并在我保存更改时重新启动应用程序
- delay 只是使用 node 来延迟 nodemon 的首次启动(适用于所有操作系统...)
为了清楚起见,我的 nodemon.json
:
{
"watch": ["nucleus"],
"ext": "*",
"exec": "tsc -p nucleus/tsconfig.json && electron ."
}
view-vhcl-cntr-ctgrs.tpl
我像下面这样替换这个文件名。
view-vhclcntr-ctgrs.tpl
它奏效了....
我的电子应用程序随机重定向到 chrome-error://chromewebdata
,我不知道为什么。控制台等没有报错
当 Electron 应用程序首次启动时,window 打开,它从我的应用程序重定向到那个 URL,我看到一个空白的空白屏幕。不需要用户交互,它只会在应用程序启动时发生。
如果我打开 devtools,我可以看到 window.location.href
包含 chrome-error://chromewebdata
而不是 http://localhost:9080
(Electron 应用程序使用本地主机 URL 运行)。
我尝试删除位于 ~/Library/Application Support/my-app-name
的本地 Electron/Chrome 数据文件夹并重新开始,但没有成功。
Chrome(在 Electron 中?)可以决定重定向到 chrome-error://chromewebdata
的原因是什么?
出于某种原因,您的代码试图导航到无效(不存在)URL,然后导致 window.location.href
变为 chrome-error://chromewebdata
。
重申:没有直接重定向到 chrome-error://chromewebdata
,而是重定向到不存在或无法访问的 URL。
检查您的代码是否导致此导航(可能是重定向)。检查 DevTools 中的网络选项卡非常有用,确保选中 "Preserve log"。这应该给出一些关于到底发生了什么的指示。
我在基于 Angular 的 Electron 项目中遇到了这种情况。在我的例子中,问题是 Angular 的 Webpack 服务器在我第一次启动项目时还没有准备好接收请求。这仅在启动时发生,简单的重新加载就可以绕过它 - 对 Angular 代码的任何实时更改都将毫无问题地刷新页面。
这在生产中不是问题,因为我切换到在我的版本中加载静态文件。
为了让它不那么烦人,我在我的电子启动中添加了延迟:
"start": "concurrently -k \"ng serve\" \"npm run delay && nodemon\"",
"delay": "node -e \"setTimeout(() => true, 3000)\"",
其中:
- concurrently 同时运行 Electron 和 Angular/Webpack 以加快开发速度。
- nodemon 观看我的电子文件并在我保存更改时重新启动应用程序
- delay 只是使用 node 来延迟 nodemon 的首次启动(适用于所有操作系统...)
为了清楚起见,我的 nodemon.json
:
{
"watch": ["nucleus"],
"ext": "*",
"exec": "tsc -p nucleus/tsconfig.json && electron ."
}
view-vhcl-cntr-ctgrs.tpl
我像下面这样替换这个文件名。
view-vhclcntr-ctgrs.tpl
它奏效了....