NW Js бросает net::ERR_UNKNOWN_URL_SCHEME при доступе к файлам на hd

Я сделал настольный музыкальный проигрыватель с помощью create-nw-react-app. Я использую его для доступа к файлам flac на моем локальном компьютере и воспроизведению их через простой звуковой интерфейс. Это работало нормально до прошлой ночи. Я попытался подключить внешний жесткий диск и использовать приложение таким же образом. Я больше не могу получить доступ к музыкальным файлам на моем локальном или внешнем жестком диске, так как теперь консоль выдает следующую ошибку:

ПОЛУЧИТЬ файл:///C:/Users/Ben/Desktop/Bootlegs/Rush/1977%20-%20A%20Farewell%20to%20Kings/10-12-77%20Canadian%20Bacon-PE/11%20Working%20Man. mp3 нетто::ERR_UNKNOWN_URL_SCHEME

Ничего в коде не изменилось, и я даже пошел на то, чтобы снова вытащить его из своего репозитория. Я думаю, что это какая-то проблема с безопасностью, но я не вижу способа ее изменить, и обширный поиск в Google не дал никаких результатов.

Основы кода выглядят так:

<AudioPlayer
  className={pathLength === 5 ? classes.root : classes.rootFixed}
  autoPlayAfterSrcChange
  showSkipControls
  src={currentTracks[index]?.trackPath} />

src — это просто путь к файлу, ни один из которых не изменился. Я попытался жестко закодировать путь к файлу в src, но все равно получаю то же сообщение об ошибке.


person Ben Jones    schedule 28.05.2021    source источник


Ответы (1)


Я считаю, что это поведение React, а не самого NW.js. См. следующий пример правильного способа импорта изображений/файлов в приложение React:

Загрузить локальные изображения в React.js

РЕДАКТИРОВАТЬ: На самом деле, в конце концов, это может быть связано с безопасностью. Следующее относится к Electron, но, вероятно, применимо:

https://github.com/electron/electron/issues/23757

Возможно, добавление этого к package.json поможет:

{
  "chromium-args": "--allow-file-access-from-files"
}
person sysrage    schedule 28.05.2021
comment
К сожалению, стандартный способ импорта на самом деле не работает, так как импорт должен быть полностью динамическим. Для этого есть небольшой обходной путь, но он приводит к довольно неприятным повторным рендерингам. Я попробовал ваше предложение для package.json, но безрезультатно. Я совершенно озадачен этим. - person Ben Jones; 28.05.2021