Electron + Angular在已发布版本上“不允许加载本地资源”

myss37ts  于 2023-06-20  发布在  Electron
关注(0)|答案(2)|浏览(173)

我最近开始了一个使用Electron和Angular的项目,我仍然在努力理解它。
在开发过程中,并在本地启动应用程序(而不是通过运行exe),一切正常。然而,当我尝试运行应用程序的发布版本(构建并运行exe)时,我得到了臭名昭著的错误Not allowed to load local resource。更具体地说:

Not allowed to load local resource: 
file:///C:/Users/Superiom/AppData/Local/Programs/my-app/resources/app.asar/dist/my-app/index.html

main.js文件打开初始视图:

win.loadFile(`dist/my-app/index.html`);

我的package.json

{
"name": "my-app",
  "version": "0.0.0",
  "main": "main.js",
  "files": [
    "*.js",
    "dist",
    "node_modules"
  ],
  "scripts": {
    "ng": "ng",
    "start": "ng build --aot && electron .",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "electron": "electron .",
    "elProd": "ng build --prod && electron .",
    "pack": "electron-builder --dir",
    "dist": "electron-builder"
  },
  "build": {
    "appId": "myApp.test.App",
    "productName": "MyApp",
    "copyright": "Copyright © 2018 Test",
    "win": {
      "icon": "build/jongis.ico",
      "target": "
  }

我通过运行npm run dist命令发布应用程序。这将创建包含.exe文件的dist文件夹。打开应用程序时出现问题。
如果需要,我可以提供更多信息。
我已经尝试了几乎所有的建议和接受的解决方案,类似的问题在这里的Stackoverflow,但似乎没有解决问题。

0yg35tkg

0yg35tkg1#

请将${__dirname}/app/index.html更改为dist/my-app/index.html,对我有效。

1tuwyuhd

1tuwyuhd2#

我有类似的问题,并通过添加下面的代码在“build“这是固定的:-

"files": [
    "**/*",
    "!**/*.ts",
    "!*.map",
    "!package.json",
    "!package-lock.json",
    {
      "from": "../dist",
      "filter": ["**/*"]
    }
  ],

主要是

{
          "from": "../dist",
          "filter": ["**/*"]
        }

并删除“extraResources”(如果存在)。
在winloadurl中添加dist,如下所示:

win.loadURL(path.join(__dirname,'../dist/index.html'));

我正在使用Electron-24、Node-18和Angular-16

相关问题