Electron Builder:不允许加载本地资源:app.asar/build/index.html

Posted

技术标签:

【中文标题】Electron Builder:不允许加载本地资源:app.asar/build/index.html【英文标题】:Electron Builder: Not allowed to load local resource: app.asar/build/index.html 【发布时间】:2017-12-14 18:46:19 【问题描述】:

我在使用电子生成器时遇到问题,我在控制台中出现空白页和错误:

Not allowed to load local resource: file:///C:/Users/emretekince/Desktop/DCSLogBook/client/dist/win-unpacked/resources/app.asar/build/index.html

main.js

const startUrl = process.env.ELECTRON_START_URL || url.format(
        pathname: path.join(__dirname, '/build/index.html'),
        protocol: 'file:',
        slashes: true
    );
mainWindow.loadURL(startUrl);

【问题讨论】:

初始化 BrowserWindow 时是否有任何限制选项? 【参考方案1】:

通过在package.json中添加“文件”解决

"files": [
  "*.js",
  "build",
  "node_modules"
],

【讨论】:

这对我不起作用。 files 究竟做了什么? 你怎么知道要向“文件”添加什么? 我应该在哪里添加文件?我已将它添加到我的 package.json 中。但没有任何变化,错误仍然存​​在 我使用它并将我的 html 文件移动到静态文件夹中。所以我只是将“静态”添加到“文件”内的列表中。【参考方案2】:

我认为您的 index.html 文件不在您给定的位置。 __dirname, '/build/index.html'

我错过了这个愚蠢的点,浪费了很多时间。 Angular-cli 在 dist 的文件夹中创建 index.html 的默认位置。

dist/project-name/index.html

【讨论】:

【参考方案3】:

我遇到了同样的问题,并设法解决了:

path.resolve('index.html')

像这样:

const startUrl = path.resolve('index.html'); mainWindow.loadURL(startUrl);

【讨论】:

【参考方案4】:

我一整天都在尝试解决这个问题,终于找到了解决方案,

"build": 
"appId": "myledgerapp",
"extends": null,
"files": [
  "./build/**/*",
  "./public/electron.js"
]

我们需要在 electron.js 是我的入口点的构建部分添加文件。

【讨论】:

【参考方案5】:

我也遇到了同样的问题,我在加载文件之前放置了以下行。

 window.webContents.openDevTools()

示例代码

// Issue code
window =  new BrowserWindow(width:800,height:600,parent:mainWindow)
window.webContents.openDevTools()
window.loadURL(url.format(
    pathname: path.join(__dirname,'/../views/file.html'),
    protocol: 'file',
    slashes: true
))

// Issue Solved code
window =  new BrowserWindow(width:800,height:600,parent:mainWindow)

window.loadURL(url.format(
    pathname: path.join(__dirname,'/../views/file.html'),
    protocol: 'file',
    slashes: true
))
window.webContents.openDevTools()

【讨论】:

【参考方案6】:

我遇到了类似的问题,但缺少path.join

错误代码:

win.loadFile('index.html')

固定代码:

win.loadFile(path.join(__dirname, 'index.html'))

【讨论】:

以上是关于Electron Builder:不允许加载本地资源:app.asar/build/index.html的主要内容,如果未能解决你的问题,请参考以下文章

电子 - 不允许加载本地资源

电子构建“不允许加载本地资源”但文件存在

Electron 加载本地图片的方法

使用 electron-builder 构建 React-Electron 应用程序,index.js 加载到 pre 标签中

具有Vue和vue-cli-plugin-electron-builder的电子应用程序无法与Tesseract.js一起使用

带有 Vue 和 vue-cli-plugin-electron-builder 的电子应用程序无法与 Tesseract.js 一起使用