Dodawanie obrazka tła w Ruby on Rails 2 w CSS

Wygenerowałem rusztowanie w ruby i chcę wstawić obraz tła do każdej strony na stronie, ale nie jestem pewien, jaki powinien być link do obrazu.

Moje zdjęcie jest w app/assets/images/"dep.jpg"

To jest to co mam ale to nie działa:

background-image:url('../images/dep.jpg');
}
Jakaś pomoc? dzięki
Author: meetalexjohnson, 2012-01-26

6 answers

Serwer WWW w rails przyjmuje folder public jako bazę aplikacji. Stąd szuka konkretnego obrazu pod /public/images/ zamiast app/assets/images/"dep.jpg" i ponieważ nie ma go tam, nie możesz uzyskać obrazu. Spróbuj umieścić swój obrazek w folderze /public/images/ wtedy zadziała.

Edit: Jeśli używasz rails 3.1 to byłoby inaczej, ponieważ Rails 3.1 używa koncepcji potoku zasobów dla zasobów Twojej aplikacji, więc wtedy path app/assets/images/dep.jpg oczywiście zadziała.

 19
Author: uday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-24 19:03:27

W Rails 3.1 ścieżką będzie ' / assets / dep.jpg": {]}

background-image: url(/assets/dep.jpg);
Jeśli nawrócisz swoje rusztowanie.plik css do pliku Sass (Zmień nazwę na scaffold.css.scss) wtedy możesz użyć helpera:
background-image: image-url("dep.jpg");
 77
Author: Dylan Markow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-26 20:11:56

Jeśli Twój obrazek znajduje się w app/assets/images/dep.jpg, to w pliku css w rails powinieneś napisać background: url('/assets/dep.jpg');

Nie musisz umieszczać obrazu w folderze publicznym w ten sposób.

 11
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-10 05:30:23

Background: url ('/assets/image_name.jpg');

To działało u mnie w Rails 4.0

 2
Author: laffan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-23 21:37:58

Możesz użyć ścieżki bezwzględnej na pewno:

background-image:url('/images/dep.jpg');
 1
Author: Oleksandr Skrypnyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-26 19:55:43

Jeśli używasz nowoczesnej wersji rails (jak sądzę 3.1 lub nowszej), możesz użyć:

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

Ponieważ css również mieszka w folderze zasobów .. automatycznie odnosi się do folderu zasobów.

 0
Author: Wylliam Judd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 22:22:51