Je ne parviens pas à charger certaines images d'arrière-plan. J'ai apporté quelques modifications significatives à l'application de création initiale, la structure de mes dossiers est maintenant la suivante:
Remarque: j'ai omis certains fichiers et dossiers, si vous avez besoin de plus d'informations, merci de me le faire savoir.
App/
node_modules/
src/
client/
build/
node_modules/
public/
src/
css/
App.css
images/
tree.png
yeti.png
App.jsx
server/
package.json
Procfile
Voici les étapes à suivre pour créer ce numéro:
$ cd src/server && npm run dev
Cela démarrera le serveur de développement et ouvrira le navigateur à mon application. Tout fonctionne correctement, à l'exception de certains éléments de la page qui ne présentent pas d'image.
Note: Je charge dans une image yeti.png et le rendu est bon.
App.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import './css/App.css';
import yeti from './images/yeti.png';
const Footer = function(props) {
return (
<div>
<Yeti />
<Trees />
</div>
);
};
const Yeti = function(props) {
return (
<img
src={yeti}
className="yeti yeti--xs"
alt="Yeti"
/>
);
};
const Trees = function(props) {
return (
<div className="trees">
<div className="trees__tree trees__tree--1"></div>
<div className="trees__tree trees__tree--2"></div>
</div>
);
};
ReactDOM.render(
<Footer />,
document.getElementById('root')
);
App.css
.trees {
bottom: 0;
height: 110px;
left: 0;
position: fixed;
width: 100%;
z-index: 1;
}
.trees__tree {
background-size: 30px;
background: url('../images/tree.png') no-repeat;
float: left;
height: 50px;
width: 30px;
}
.trees__tree--1 {
margin: 0 0 0 6%;
}
.trees__tree--2 {
margin: 2% 0 0 4%;
}
Lorsque j'inspecte les éléments dans Chrome, le chemin d'accès aux images semble être correct. Lorsque je survole le chemin de l'image dans l'onglet Styles de mon inspecteur, l'image apparaît.
Notez que le chemin de l'image que j'importe est similaire à celui de l'image d'arrière-plan:
Si je devais importer le tree.png
en tant que import tree from './images/tree.png';
et changer mes deux éléments <div>
en <img src={tree} role="presentation" className="trees__tree trees__tree--1" />
et <img src={tree} role="presentation" className="trees__tree trees__tree--2" />
, les images se chargeront bien sûr.
Comment puis-je obtenir les images de fond pour afficher? J'ai d'autres images d'arrière-plan dans l'application qui ne se chargent pas, de sorte que le bandaid mentionné précédemment ne m'aidera pas. J'ai peur d'éjecter mon application et de gâcher la configuration.
J'ai également le même problème lorsque je construis l'application.
Si vous avez besoin de voir plus de la source, vous pouvez la voir à https://github.com/studio174/ispellits mais gardez bien à l'esprit que j'ai simplifié cet exemple pour isoler le problème. Le problème que je rencontre est en réalité dans le Footer.jsx
et le Footer.css
Le problème était purement lié à CSS dans le fichier App.css
:
App.css
.trees__tree {
background: url('../images/tree.png') no-repeat;
background-size: 30px; /** moved this property down */
float: left;
height: 50px;
width: 30px;
}
Mon problème était précisément que je n'avais pas défini background-size: 30px;
. Merci pour cela.