Coloquei todas as minhas imagens para o meu tema de administrador na pasta de ativos em uma pasta chamada admin. Então eu vinculo a ele como isto é normal.
# Ruby
image_tag "admin/file.jpg" .....
#CSS
.logo{ background:url('/assets/images/admin/logo.png');
PARA SUA INFORMAÇÃO. Apenas para teste, ainda não estou usando a tag asset_path, pois ainda não compilei meus ativos.
Ok, tudo bem até agora, até que eu decidi atualizar uma imagem. Troquei algumas cores, mas ao recarregar a nova imagem estilizada não está aparecendo. Se eu visualizar a imagem diretamente no navegador, ainda está mostrando a imagem antiga. Indo um passo adiante, destruí a pasta de imagens de administrador. Mas não quebrou nada, todas as imagens ainda estão sendo exibidas. E sim, limpei meu cache e tentei em vários navegadores.
Existe algum tipo de cache de imagem em andamento? Este é apenas o desenvolvimento local usando o pow para servir as páginas.
Mesmo destruindo toda a pasta de imagens, as imagens ainda estão sendo exibidas.
Estou esquecendo de algo?
Respostas:
Na versão 3.1, você apenas se livra da parte 'images' do caminho. Portanto, uma imagem que
/assets/images/example.png
fica na verdade estará acessível em uma solicitação de obtenção neste URL -/assets/example.png
Como a
assets/images
pasta é gerada junto com um novo aplicativo 3.1, esta é a convenção que eles provavelmente desejam que você siga. Eu acho que é ondeimage_tag
procuraremos, mas ainda não testei.Além disso, durante a palestra do RailsConf, lembro-me do D2h dizendo que o
public folder
não deveria ter muito mais, principalmente apenas páginas de erro e um favicon.fonte
Você deseja alterar a extensão do seu arquivo css de
.css.scss
para.css.scss.erb
e do:Pode ser necessário fazer uma "atualização definitiva" para ver as alterações. CMD + SHIFT + R nos navegadores OSX.
Na produção, verifique se
acontece na implantação.
fonte
.css
de.css.erb
(depois que você moveu-los paraapp/assets
obter o processamento erb sem sass.Pelo que vale a pena, quando fiz isso, descobri que nenhuma pasta deveria ser incluída no caminho no arquivo css. Por exemplo, se eu tiver
app/assets/images/example.png
, e coloquei isso no meu arquivo css ...... então, de alguma forma, funciona magicamente. Eu descobri isso executando a
rake assets:precompile
tarefa, que apenas suga tudo para fora de todos os seus caminhos de carga e despeja-lo em uma pasta lixo gaveta:public/assets
. Isso é irônico, IMO ...De qualquer forma, isso significa que você não precisa colocar nenhum caminho de pasta; tudo nas pastas de ativos acabará vivendo em um diretório enorme. Como este sistema resolve conflitos de nome de arquivo não é claro, talvez seja necessário ter cuidado com isso.
Tipo de frustrante, não há documentos melhores por aí para essa grande mudança.
fonte
asset_path()
auxiliar e especificando o diretórioNo Rails 4, agora você pode usar um urss de imagem css e sass helper:
Se suas imagens de plano de fundo não estiverem aparecendo, considere como você as está referenciando em suas folhas de estilo.
fonte
div.logo {background: image-url("logo.png") no-repeat center;}
ao referenciar imagens em CSS ou em uma tag IMG, use image-name.jpg
enquanto a imagem está realmente localizada em ./assets/images/image-name.jpg
fonte
background: url('sort_asc_disabled.png')
funciona para o arquivo app / assets / images / sort_asc_disabled.png.http://railscasts.com/episodes/279-understanding-the-asset-pipeline
Este railscast (vídeo do Tutorial do Rails sobre o pipeline de ativos) também ajuda muito a explicar os caminhos no pipeline de ativos. Achei bastante útil e assisti algumas vezes.
A solução que escolhi foi a de @Lee McAlilly acima, mas este railscast me ajudou a entender por que funciona. Espero que ajude!
fonte
O pipeline de ativos em trilhos oferece um método para exatamente isso.
Você simplesmente adiciona image_path ('nome do arquivo da imagem') ao seu arquivo css ou scss e o rails cuida de tudo. Por exemplo:
.logo{ background:url(image_path('admin/logo.png'));
(observe que ele funciona exatamente como em uma exibição .erb e você não usa "/ assets" ou "/ assets / images" no caminho)
O Rails também oferece outros métodos auxiliares, e há outra resposta aqui: Como uso imagens de referência no Sass ao usar o Rails 3.1?
fonte