• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

408
Views
Electron + Angular = ¿no hay archivos locales?

Mi problema es difícil de explicar, pero lo intentaré: tengo un error de electrones. Not allowed to load local resource cuando intento reproducir un archivo mp3 desde el directorio de la aplicación.

Eso sucede porque estoy usando Webpack para desarrollo y servidor Express para producción para ejecutar mis aplicaciones (Express se usa debido a algunas funciones de enrutamiento angular).

Esto es parte de mi electron-main.js -

 function createWindow() { win = new BrowserWindow({ width: 1500, height: 900, resizable: true, center: true, autoHideMenuBar: true, icon: path.join(__dirname, 'static', 'note.ico') }); if (DEBUG) { // Loading from Webpack win.loadURL(`http://localhost:4200`); win.webContents.openDevTools(); } else { // Loading from Express-server const server = require("../server"); win.loadURL(`http://localhost:3333`); }

servidor.js

 let path = require('path'); let express = require('express'); let app = express(); app.use(express.static(path.join(__dirname, 'dist'))); app.get('/', function (req, res) { res.sendFile(path.join(__dirname, 'dist', 'index.html')); }); app.listen(3333);

Pero cuando traté de establecer

 win.loadURL(url.format({ pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true }));

Tengo mi reproducción de mp3 .

Entonces entiendo que solo se puede acceder a los archivos locales cuando protocol: 'file:' , no http: la estructura de la aplicación debe ser similar -

 (root folder) --app.exe (whatever) --mp3 --1.mp3 --2.mp3 --3.mp3 ...

¿Hay una solución? ¿Tal vez pueda usar Express para obtener mis archivos?

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

La única solución que he encontrado es crear una ventana oculta adicional usando file: protocolo como este

 hiddenWindow = new BrowserWindow({ show: false }); hiddenWindow.loadURL(url.format({ pathname: path.join(__dirname, 'hidden.html'), protocol: 'file:', slashes: true }));

e inicie sus funciones usando ipcRenderer e ipcMain .

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error