28182 sujets

CSS et mise en forme, CSS3

Bonjour,

Dans des fichiers css, je cherche à utiliser un alias dans les fonctions url() pour indiquer le répertoire de certaines images qui se trouvent dans mon_projet/public/images.
Donc, dans webpack.conf.js, j'ai créé un alias @images comme ceci :


...
var path = require('path');
...
Encore
...
    .addAliases({'@images': path.resolve(__dirname, 'public/images')})
...
;
module.exports = Encore.getWebpackConfig();


Dans mon css, je cherche à accéder à une image de cette manière :


background-image: url('~@images/sprite.svg');


Or, de cette manière, l'image n'est pas affichée. Lorsque j'inspecte le css généré, j'ai ceci :

"background-image: url(/build/images/sprite.56e5c9c8.svg);"

Lorsque j'ouvre le fichier sprite.56e5c9c8.svg généré dans /build/images/, j'ai ceci :


module.exports = __webpack_public_path__ + "_/public/images/sprite.e9a8abfa.svg";


Quelqu'un aurait une idée sur l'origine du fait que mon image ne s'affiche pas?

Merci d'avance pour votre aide.
Salut

dans ton manifest.json tu as la référence de ton image ?

genre un truc comme ça :

{
  ...
  "build/images/noSpam.png": "/build/images/noSpam.d47c971d.png",
  ...
}
Salut,

Merci beaucoup pour ton aide.

Lorsque je regarde dans le manifest.json, je n'ai effectivement pas la référence à mon image.

Concernant le format svg, je ne le maîtrise pas non plus : c'est le webdesigner avec qui je collabore qui maîtrise cela. Cependant, si je mets l'url complète pour accéder à l'image :


background-image: url('http://127.0.0.1:8000/images/sprite.svg');


elle s'affiche bien. Mais c'est impossible à utiliser en production Smiley smile
Face au fait que je ne trouvais pas l'image dans le manifest.json, dans le répertoire "assets", j'ai créé un sous-repertoire "images" et j'y ai placé le fichier "sprite.svg".

J'ai ensuite recompilé webpack. Cependant, l'image n'est toujours pas référencée dans le manifest.json.