Как использовать эталонные изображения в Sass, когда используете Rails 3.1?

У меня есть проект Rails 3.1 с отлично работающим конвейером ресурсов. Проблема в том, что мне нужно ссылаться на изображения в моем Sass, но Rails вычисляет URL-адреса изображений. (Это особенно важно в production, где Rails добавляет хеш Git образа к его имени файла для перебора кешей.)

Например, в app / assets / stylesheets / todos.css.scss :

.button.checkable { background-image: url(/assets/tick.png); }

Когда я развертываю (или запустите rake assets: precompile ), файл app / assets / images / tick.png перемещается в public / assets / tick-48fe85c0a.png или что-то подобное. Это нарушает CSS. В этом сообщении содержится два предложения:

  1. не используйте конвейер ресурсов для изображений - вместо этого поместите их в public / images / и ссылаться на них напрямую
  2. использовать ERB для вашего CSS и позволить Rails определить URL изображения.

Номер 1, безусловно, возможен, хотя это означает, что я не получаю очистки кеша на моих изображениях. Номер 2 i нет, потому что я использую Sass, а не ERB для обработки файлов.

49
задан mu is too short 17 June 2011 в 18:41
поделиться