Активы не запускаются через препроцессор .erb - PullRequest
3 голосов
/ 08 октября 2011

У меня возникают проблемы при попытке rake assets:precompile в моем приложении rails 3.1.Я продолжаю получать следующую ошибку:

 rake aborted!
 Invalid CSS after "...und-image: url(": expected ")", was "<%= asset_path(..."

Кажется, что препроцессор erb не вызывается, но мой файл называется style.css.scss.erb.Есть предложения?

Ответы [ 4 ]

4 голосов
/ 09 октября 2011

Документация Ruby кажется немного неясной в некоторых вещах, таких как использование asset_path и других подобных помощников в таблицах стилей.В любом случае это то, что я сделал, чтобы обойти ту же самую проблему:

  1. Я решил сделать это SASS-way, изменив мои расширения таблицы стилей с css на scss .
  2. Ссылки на изображения в моем коде были изменены с
    background-image: url(<%= asset_path 'blah.png' %>);
    на
    background-image: image-url("blah.png");
Я нашел необходимую документацию о помощниках sass на одном из RailsGuides


Я также добавил строку config.assets.digest = true в мой файл config/appliction.rb, потому что мне показалось, что мой выходной HTML ссылается на хэшированные имена файлов.Без установленного в digest флага все мои теги ссылок начинаются с<link href="/assets/print.css?body=1" ... или<href="/assets/favicon.png"..., который в значительной степени не соответствует цели использования конвейера активов.Особенно файл favicon будет по-прежнему кэшироваться серверами и CDN по пути.

Если установить для дайджест-флага значение true, я получу значение true.<link href="/assets/print-e47f5a48af04ce6854c840d74cd28fba.css?body=1" и<link href="/assets/favicon-15fb5e00d868940bc32db7996e10f594.png" ...

0 голосов
/ 16 января 2013

Это ошибка sass-rails, как обсуждалось здесь .

У меня был тот же вопрос и я обнаружил, что решение заключается в установке sass-rais-path.

Это заставляет Rails работать SASS + ERB, как ожидается, даже если вы можете продолжать использовать помощник asset_path.

0 голосов
/ 02 декабря 2012

Несмотря на то, что ответ уже был принят, и мое конкретное решение, возможно, не решило проблему ОП, этот вопрос был самым популярным в Google, поэтому подумал, что это может помочь кому-то еще. Я не мог принять идею о необходимости изменить все мои таблицы стилей, чтобы использовать пути активов в стиле SASS вместо стиля ERB, потому что ERB должен работать. После некоторого копания я понял, что у меня так много файлов со встроенными помощниками ruby ​​asset_path, и я пропустил один в каталоге app / assets / stylesheets, который все еще имел расширение .css (забыл добавить .erb). Кроме того, я включил vendor.css, и он включил еще один файл в vendor / assets / stylesheets, который нуждался в .erb. Наконец, я использовал более старую версию svn, которая по-прежнему использовала каталоги .svn на каждом уровне иерархии, и так как у меня было «require_tree». в application.css файлы .svn-base также могли быть скомпилированы и, очевидно, не могли бы выполняться через процессор erb. Исправление всего вышесказанного заставило меня снова работать.

0 голосов
/ 14 сентября 2012

Измените расширение файла с

          xxx.scss.css

на xxx.scss.css.erb и все будет хорошо

...