Почему мои CSS фоновые изображения не загружаются в электронном формате? - PullRequest
2 голосов
/ 24 января 2020

Я разрабатываю приложение реагирования, упакованное в электронное приложение, которое должно загружать его содержимое из inte rnet. Затем этот контент сохраняется в папке данных. Большую часть времени это работает просто отлично. Я должен уделить внимание правильной настройке URL-адресов, иначе он перестанет работать при переходе между Windows и Ma c, но, потратив немного времени и внимания, я смогу заставить его работать на обоих.

Все это сейчас остановился, потому что мне нужно использовать изображение в качестве фона. Мой код прекрасно работает на Ма c, разрывы на windows. Я проверил вывод моего кода, он выдает правильный путь к соответствующему файлу. Я даже могу скопировать и вставить это в браузер, и фоновое изображение загружается просто отлично. По какой-то причине код css искажает результаты - и я действительно имею в виду «искажение», удаление косой черты, создание странных выходов, вставку мусорных символов в странных местах. Когда я использую отладчик, я вижу и мои console.log() выходные данные с действительным URL-адресом, и ошибку 404, когда браузер пытается полностью получить другой URL-адрес. Вы можете видеть, что он начинался как целевой URL, но он был преобразован способами, которые я не понимаю.

Следующий код значительно упрощен - он не включает, например, фактически структура каталогов моего приложения в вызове path.join ().

var fullPath = path.join(AppDataFolder, 'stuff', filename)
var url = url.format({ pathname: fullPath, protocol: 'file', slashes: true })
//Url, if printed, is file:///c:\app\data\dir\rental\file.suffix -- the right output
<div style={{ backgroundImage: `url(${url})` }}>
</div>
//Use the debugger on the result above, and you get an error 404ing on:
//file:///C:/appdatadir%E3%89%83%0garbagefilesuffix

Если вместо этого я поместил цель в тег изображения, <img src={target} />, она отлично работает, и Windows & Ma c.

Что я делаю не так? Как мне это исправить?

Ответы [ 2 ]

3 голосов
/ 24 января 2020

В reactjs мы должны использовать CSS свойства в случае с верблюдом.

<div style={{ backgroundImage: `url(${url})` }}>

Ссылка: https://reactjs.org/docs/dom-elements.html#style

0 голосов
/ 24 января 2020

Нам нужна дополнительная информация, чтобы увидеть, действительно ли проблема url encode-i sh действительно связана с вашей проблемой. Вы бы попытались поставить двойную кавычку, например

<div style={{ backgroundImage: `url("${url}")` }}>

, чтобы посмотреть, решит ли это вашу проблему? браузер действительно показывает ping этот нечетный URL и возвращает 404? как вы можете просто CSS выдать, например, нужную ширину и высоту.

<div style={{ backgroundImage: `url("${url}")`, width: 40, height:40 }}>

Я думаю, вы упомянули, что упростили свой код, так что это может быть не проблема, а просто проверка ... У меня есть ма c здесь, поэтому ссылка на изображение в файловой системе отличается от P C, поэтому не сможет воспроизвести ту же проблему. Но еще одна вещь, которую вы, возможно, захотите проверить, - это проблема с разрешениями, так как вы не знаете, на каком хосте находится ваше реагирующее приложение (узел?), Которое может иметь проблему для связи с локальным файлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...