#javascript #node.js #angular #electron
#javascript #node.js #angular #electron
Вопрос:
Я создаю приложение angular-electron (Angular 7). Я хочу загрузить новое окно браузера, но я получаю сообщение «Не разрешено загружать локальный ресурс».
Все в порядке, если я пытаюсь загрузить просто index.html . Но проблема в том, что я хочу загрузить ‘/index.html #/settings’.
// Create a browser window
var win = new BrowserWindow({
width: 800,
height: 600,
center: true,
resizable: false,
frame: true,
transparent: false
});
// Load the page route
win.loadURL('file://' __dirname '/index.html#/settings');
Я вижу в сообщении об ошибке, что «#» в URL преобразуется в «#», поэтому вместо «… /index.html # /settings» он пытается загрузить «…/index.html#/settings». Я предполагаю, что если бы я мог предотвратить преобразование «#» в «#», у меня не было бы этой проблемы.
Полная ошибка:
Не разрешено загружать локальный ресурс: file:///Users/username/Development/trackapp/release/mac/The Track Tim…ces/app.asar/dist/index.html#/settings
Комментарии:
1. Как насчет прямого перенаправления из вашего приложения Angular вместо этого?
2. @briosheje Я предположил, что было бы проще просто добавить как есть (на самом деле не angular pro). Кстати, я проверяю, является ли это производством или разработчиком, и если это разработчик, я запускаю win.loadUrl (‘ localhost: 4200 / # /settings /’ ), и все работает нормально. Но описанная ошибка находится в упакованном приложении electron.
3. это из-за политики безопасности, из-за того, что экземпляр браузера пытается загрузить небезопасный ресурс. Правильно ли это работает с
win.loadURL('file://' __dirname '/index.html');
?4. @briosheje Да, «Все в порядке, если я пытаюсь загрузить просто index.html . Но проблема в том, что я хочу загрузить ‘/index.html #/settings’.»
5. @briosheje Кроме того, я уверен, что это сработает, если ‘#’ не заменить на «#». Я получаю то же сообщение об ошибке, когда файл не найден. Если бы я мог запретить electron (или angular) преобразовывать ‘#’ в ‘% 23’, это, вероятно, будет работать нормально.