Я разрабатываю приложение, используя React и Electron.
Я храню изображения в src/assets/images
. Когда я запускаю приложение в разработке, используя react-scripts start
и electron .
, все работает нормально.
Проблема возникает, когда приложение реакции создается с использованием react-scripts build
. Когда загружен первый вид, путь корректно разрешен, например file:///D:/Projects/app-name/build/static/media/logo.e99ed458.png
, и отображается изображение.
Теперь, когда маршрут меняется, изображение больше не работает. На вкладке сети в devTools URL запроса - file:///D:/main/static/media/logo.e99ed458.png
, что, очевидно, неверно.
Это мой код компонента:
import React from "react";
import Logo from '../../assets/images/ad.png';
const Logo = () => {
return (
<React.Fragment>
<img src={Logo} alt="no image" />
</React.Fragment >
);
};
export default Logo;
И в electron.js
mainWindow.loadURL(url.format({
protocol: 'file',
slashes: true,
pathname: require('path').join(__dirname, '../build/index.html')
}));
Я пытался решить эту проблему уже два дня. Кто-нибудь знает решение?
РЕДАКТИРОВАТЬ:
Я также пытался использовать PUBLIC_URL в соответствии с https://create-react-app.dev/docs/using-the-public-folder/
Но результат тот же, Путь разрешается правильно, когда отображается первый вид, и после этого он разрешается в file:///D:/assets/images/logo.png
.
Когда я регистрирую process.env.PUBLIC_URL
, он говорит, что PUBLIC_URL равно ".".