J'ai généré un échafaudage en Ruby et je souhaite insérer une image d'arrière-plan sur chaque page du site, mais je ne suis pas certain du lien qui doit être créé avec l'image.
mon image est en app/assets/images/"dep.jpg"
c'est ce que j'ai mais ça ne marche pas:
background-image:url('../images/dep.jpg');
}
De l'aide? Merci
Le serveur Web dans Rails utilise le dossier public
comme base de l'application. Par conséquent, il recherche l'image spécifique sous /public/images/
au lieu de app/assets/images/"dep.jpg"
et, puisque ce n'est pas là-bas, vous ne pouvez pas obtenir l'image. Essayez de mettre votre image dans le dossier /public/images/
pour que cela fonctionne.
Edit: Si vous utilisez Rails 3.1, il en ira différemment, car Rails 3.1 utilise le concept de pipeline d'actifs pour les actifs de votre application. Dans ce cas, le chemin app/assets/images/dep.jpg
fonctionnerait évidemment.
Dans Rails 3.1, le chemin sera réellement `/assets/dep.jpg ':
background-image: url(/assets/dep.jpg);
Si vous convertissez votre fichier scaffold.css en un fichier Sass (renommé en scaffold.css.scss
), vous pouvez utiliser l’aide suivante:
background-image: image-url("dep.jpg");
Si votre image est dans app/assets/images/dep.jpg
, dans le fichier css de Rails, vous devez écrire background: url('/assets/dep.jpg');
.
Vous n'êtes pas obligé de mettre l'image dans le dossier public de cette façon.
background: url ('/ assets/nom_image.jpg');
Cela a fonctionné pour moi dans Rails 4.0
Vous pouvez utiliser le chemin absolu à coup sûr:
background-image:url('/images/dep.jpg');
Si vous utilisez une version moderne de Rails (3.1 ou plus récente, je crois), vous pouvez utiliser:
background: url('../dep.jpg');
Puisque le fichier css vit également dans votre dossier d’actifs, ..
fait automatiquement référence au dossier d’actifs.