У меня есть проект Rails 3.1, работающий отлично. Проблема в том, что мне нужно ссылаться на изображения в моем Sass, но Rails вычисляет URL-адреса изображений. (Это особенно важно при производстве, когда 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. Этот пост содержит два предложения:
- не используйте конвейер объектов для изображений - вместо этого разместите их в
public/images/
и обратитесь к ним напрямую - используйте ERB для вашего CSS и пусть Rails разработает URL-адрес изображения.
Номер 1 - это, конечно, возможность, хотя это означает, что я не получаю кэширование на своих изображениях. Номер 2 отсутствует, потому что я использую Sass, а не ERB для обработки файлов.