Как стать автором
Обновить

Комментарии 22

Т.е. пока что бы добавлять картинки из ассетов в цсс, нужно вводить erb в дополнительный слой компиляции?
Нет. Должен помогать хэлпер image_url (вместо url) из движка sass_rails.
Ну как сказано выше, ни один из них не сработал.
Должен помогать, но пока не получается. Проверил ещё раз созданием проекта с нуля.
sass (3.1.7)
sass-rails (3.1.0)
В официальной документации image-url, что я успешно использую.
Да, кода не было под рукой, вы абсолютно правы.
Да, похоже на то. На проблему этих хелперов указывал EvilShadow. У меня они не интерпретировались в то, во что должны были.
А вы не в .css.erb а в .css.scss попробуйте
Ваш комментарий вдохновил меня попробовать ещё раз. Получилось, спасибо. Дело было не в бобине, а в невнимательности и нечистоте экспериментов.
Выложил версию, работающую через sass…
Они assets/images добавили в пути? Мне в каком то из релиз-кандидатов приходилось config.assets.paths << "images" в конфигах прописывать.
Да, в стабильной версии этой проблемы уже нет.
С rc6 проблем не замечалось.
Столкнулись с той же проблемой в своем проекте.
Путем проб и ошибок был найден работающий вариант для sass-файлов. Необходимо использовать хелпер asset_path. Например, так.

background: url(asset_path('image.png', image)) 50% 30% no-repeat white

Ассеты для sass в таком случае нормально отрабатывают.
Так и не побежденной осталась корректная компиляция ассетов для изображений из coffee-файлов.
Но я решил, что опеределение представлений через js — это все-таки bad-style, и вынес все определения элементов с картинками в sass.
Блин, у меня ощущение что в Rails 3.1 внезапно что-то слишком намутили.
Он какой-то не «тупо-простой» стал.
спасибо, исправился
Я один не вижу смысла использовать изображения в assets? Не легче их положить как раньше в public/images и все. Никаких танцев с бубном. Они же все равно не компилируются.
Думаю смысл есть в том, что бы не мешать изображения закаченные пользователями, от изображений, яаляющимися частью сайта
Но опять же сделайте папочку public/images/upload и все, не нужны опять никакие танцы с бубном и переписывание всех css. Я сначала тоже сделал «по феншую», но потом решил вернуть все назад. Да яваскрипт и css имеет смысл запихивать в assets, но картинки пусть как обычно лежат в паблике.
Ну смысл, полагаю, в том, что если у вас вдруг какое-то изображение изменится, то у него изменится и хеш в названии, так что браузер гарантированно его перезагрузит, а не возьмет из кеша.
Долго боролся вот с этим при переносе 3.1 в продакшн.
config.assets.compile = true неожиданно помогло — может, кому пригодится.
Да, документация это большая проблема в рельсах.

Я еще добавлю, что с assets можно делать так
//=require 'something.js'

чтобы собрать файл еще на стороне сервера

И писать, например something.js.coffee, а потом CoffeScript прозрачно скомпилируется в джаваскрипт.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации