Я создал приложение React, которое отлично работает на Chrome. Теперь я хотел преобразовать его в приложение Electron. Ресурсы, расположенные в каталоге /public
(изображения, значки, файлы JSON), не могут быть загружены в электронное приложение. Консоль браузера отображает ошибки при загрузке этих файлов: Failed to load resource: net::ERR_FILE_NOT_FOUND
. Когда я вставляю изображение ресурса из каталога publi c непосредственно в сгенерированный файл index. html, например
<img src="pic.png" alt=" pic"/>
, он работает, но загрузка его таким же образом из компонентов React не работает. Файлы ресурсов загружаются из root (например, file: //pic.png)
Вот структура проекта:
скриншот структуры проекта
пакет. json:
"homepage": "./",
"main": "src/electron-starter.js",
"build": {
"appId": "com.myapp",
"productName": "App",
"files": [
"build/**/*",
"src/electron-starter.js"
],
"directories": {
"buildResources": "public"
},
"win": {
"target": "NSIS"
},
"linux": {
"target": [
"AppImage",
"deb"
],
"category": "Audio"
},
"dmg": {
"contents": [
{
"x": 110,
"y": 150
},
{
"x": 240,
"y": 150,
"type": "link",
"path": "/Applications"
}
]
}
}
функция createWindow внутри электронного стартера. js:
function createWindow () {
const mainWindow = new BrowserWindow({
width: 1200,
height: 700,
webPreferences: {
nodeIntegration: true
}
})
if (process.env.ELECTRON_START_URL) {
mainWindow.loadURL(process.env.ELECTRON_START_URL);
} else {
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, '../build/index.html'),
protocol: 'file',
slashes: true
}))
}
mainWindow.webContents.openDevTools()
}
Заранее благодарю за вашу помощь!