Não há necessidade de carregar imagens grandes se a página não for aberta em uma tela de alta resolução. Neste tutorial, usaremos um fork da joia retina-js . Basicamente, este é um invólucro de Retina.js que ajuda você a usá-lo facilmente em rubi sobre trilhos.
Dos documentos Retina.js :
Como funciona:
quando seus usuários carregam uma página, o retina.js verifica cada imagem na página
para ver se há uma versão de alta resolução dessa imagem em seu
servidor. Se houver uma variante de alta resolução, o script irá trocar
essa imagem no local.O script assume que você usa o
modificador de alta resolução prescrito pela Apple (@ 2x) para denotar variantes de imagem de alta resolução em seu servidor.Por exemplo, se você tiver uma imagem em sua página semelhante a esta:
<img src="/images/my_image.png" />
O script verificará seu servidor para ver se
existe uma imagem alternativa neste caminho:"/images/my_image@2x.png"
Para usar esta gema em seu aplicativo, siga estas etapas fáceis:
Adicione
gem 'retinajs-rails', git: 'https://github.com/bohdanbenov/retinajs-rails.git'
ao seu Gemfile.Execute o
bundle install
comando em seu terminalInclua o arquivo retina.js com esta tag <% = javascript include tag ‘retina.js’%> na página onde você precisa usar a otimização de imagens.
Adicione suas fotos em alta resolução (anexe @ 2x após o nome e antes da extensão) na mesma pasta com sua imagem pequena. Por exemplo, se sua imagem menor estiver em, então sua imagem grande deve ser
assets/images/flowers.png
assets/images/flowers@2x.png
Inclua suas imagens com tag
image_tag_with_at2x
para visualizar. Por exemplo= image_tag_with_at2x "flowers.png"
Verifique se funciona. Para isso, recarregue fortemente sua página e encontre suas imagens na aba Rede. Observe o tamanho da imagem. Aumente a resolução (por exemplo, 2560×1600) nas ferramentas de desenvolvimento do Chrome e recarregue novamente. Verifique o tamanho novamente. Tem que ser maior que o anterior. Além disso, deve haver mudanças na estrutura html da tag img, o atributo src deve mudar para your_image@2x.png que indica que está tudo bem.