it-swarm.com.de

Hinzufügen eines Hintergrundbildes in Ruby on Rails 2 in CSS

Ich habe ein Gerüst in Ruby erstellt und möchte auf jeder Seite ein Hintergrundbild einfügen, aber ich bin mir nicht sicher, was der Link zum Bild sein soll. 

mein Bild ist in app/assets/images/"dep.jpg"

das ist was ich habe, aber es funktioniert nicht:

background-image:url('../images/dep.jpg');
}

Irgendeine Hilfe? Vielen Dank

28
Dan

Der Webserver in Rails nimmt den public-Ordner als Basis der Anwendung. Daher sucht es nach dem spezifischen Bild unter /public/images/ anstelle von app/assets/images/"dep.jpg" &, da es dort nicht vorhanden ist, können Sie das Bild nicht erhalten. Versuchen Sie, Ihr Bild im Ordner /public/images/ abzulegen, dann würde es funktionieren.

Edit: Wenn Sie Rails 3.1 verwenden, ist dies anders, da Rails 3.1 das Konzept der Asset-Pipeline für die Assets Ihrer Anwendung verwendet. Der Pfad app/assets/images/dep.jpg würde dann offensichtlich funktionieren.

19
uday

In Rails 3.1 lautet der Pfad tatsächlich /assets/dep.jpg:

background-image: url(/assets/dep.jpg);

Wenn Sie die Datei scaffold.css in eine Sass-Datei konvertieren (in scaffold.css.scss umbenennen), können Sie den Helfer verwenden:

background-image: image-url("dep.jpg");
77
Dylan Markow

Wenn sich Ihr Bild in app/assets/images/dep.jpg befindet, sollten Sie in der css-Datei in Rails background: url('/assets/dep.jpg'); schreiben. 

Sie müssen das Bild nicht auf diese Weise im öffentlichen Ordner ablegen. 

11
user1187135

hintergrund: URL ('/ assets/image_name.jpg');

Das funktionierte für mich in Rails 4.0

2
laffan

Sie können absolut den absoluten Pfad verwenden:

background-image:url('/images/dep.jpg');
1

Wenn Sie eine moderne Version von Rails verwenden (Version 3.1 oder höher, glaube ich), können Sie Folgendes verwenden:

background: url('../dep.jpg');

Da sich die css auch in Ihrem Assets-Ordner befindet, bezieht sich .. automatisch auf den Assets-Ordner.

0
Wylliam Judd