Como uso imagens de referência no Sass ao usar o Rails 3.1?
Tenho um projeto do Rails 3.1 com o pipeline de ativos funcionando muito bem. O problema é que preciso fazer referência às imagens no meu Sass, mas o Rails calcula os URLs das imagens. (Isso é particularmente importante na produção, onde o Rails anexa o hash Git da imagem ao seu nome de arquivo para interromper os caches.)
Por exemplo, emapp/assets/stylesheets/todos.css.scss
:
.button.checkable { background-image: url(/assets/tick.png); }
Quando implantar (ou executarrake assets:precompile
), o arquivoapp/assets/images/tick.png
é movido parapublic/assets/tick-48fe85c0a.png
ou algo semelhante. Isso quebra o CSS.Esta postage faz duas sugestões:
public/images/
e referencie-os diretamenteuse ERB para o seu CSS e deixe o Rails descobrir o URL da imagenúmero 1 é certamente uma possibilidade, embora signifique que eu não obtenho impedimento de cache em minhas imagens. O número 2 está fora porque estou usando o Sass, não o ERB para processar os arquivo