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

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

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

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

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

помочь? спасибо

6 ответов


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

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


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

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

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

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

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

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


фон: url ('/assets / image_name.jpg');

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


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

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

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

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

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