Подтвердить что ты не робот

Добавление фонового изображения в Ruby on Rails 2 в CSS

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

мое изображение находится в app/assets/images/"dep.jpg"

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

В Rails 3.1 путь будет фактически `/assets/dep.jpg ':

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

Так как css также живет в папке с вашими ресурсами, .. автоматически ссылается на папку с ресурсами.