Добавление фонового изображения в Ruby on Rails 2 в CSS - PullRequest
28 голосов
/ 26 января 2012

Я создал скаффолд в ruby ​​и хочу вставить фоновое изображение на каждую страницу сайта, но я не уверен, какой должна быть ссылка на изображение.

мое изображение в app/assets/images/"dep.jpg"

это то, что у меня есть, но оно не работает:

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

Любая помощь? спасибо

Ответы [ 6 ]

77 голосов
/ 27 января 2012

В Rails 3.1 путь на самом деле будет `/assets/dep.jpg':

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

Если вы преобразуете файл scaffold.css в файл Sass (переименуйте в scaffold.css.scss),Вы можете использовать помощника:

background-image: image-url("dep.jpg");
19 голосов
/ 26 января 2012

Веб-сервер в рельсах принимает за основу папку public. Следовательно, он ищет определенное изображение под /public/images/ вместо app/assets/images/"dep.jpg", и поскольку его там нет, вы не можете получить изображение. Попробуйте поместить свое изображение в папку /public/images/, тогда оно будет работать.

Редактировать: Если вы используете rails 3.1, тогда это будет иначе, так как Rails 3.1 использует концепцию конвейера активов для активов вашего приложения, поэтому тогда путь app/assets/images/dep.jpg, очевидно, будет работать. *

11 голосов
/ 10 октября 2012

Если ваше изображение в app/assets/images/dep.jpg, то в файле css в rails вы должны написать background: url('/assets/dep.jpg');

Вам не нужно помещать изображение в общую папку таким образом.

2 голосов
/ 08 апреля 2015

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

Это работает для меня в Rails 4.0

1 голос
/ 26 января 2012

Вы можете использовать абсолютный путь наверняка:

background-image:url('/images/dep.jpg');
0 голосов
/ 27 января 2017

Если вы используете современную версию rails (3.1 или более позднюю версию), вы можете использовать:

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

Поскольку CSS также находится в папке ваших ресурсов .. автоматически ссылается на активыпапка.

...