156 votes

Rails 3.1 et de l'Image de l'Actif

Je pense que je suis en train de devenir fou sur celui-ci.

Je suis à jouer avec des rails 3.1 et je vais avoir des problèmes avec les images.

J'ai mis toutes mes images dans mon admin thème dans le dossier des ressources dans un dossier nommé admin. alors

Je m'y connecte comme d'habitude c'est à dire.

# Ruby    
image_tag "admin/file.jpg" .....
#CSS
.logo{ background:url('/assets/images/admin/logo.png');

FYI. Juste pour le test, je ne suis pas à l'aide de la asset_path balise juste encore que je n'ai pas compilé mon actif.

Ok tout bon jusqu'ici jusqu'à ce que j'ai décidé de mettre à jour une image. J'ai remplacé certaines couleurs mais sur recharger le nouveau style de l'image n'est pas affichée. Si je afficher l'image directement dans le navigateur de son affiche toujours l'ancienne image. Un pas plus loin, j'ai détruit l'admin dossier d'images. Mais il a rompu rien de toutes les images sont toujours affichées. Et oui, j'ai effacé le cache de mon navigateur et ont essayé sur plusieurs navigateurs.

Est-il une sorte de cache d'image? C'est juste le développement local à l'aide de pow pour servir les pages.

Même détruire l'ensemble du dossier des images les images sont toujours servi.

Ai-je raté quelque chose?

226voto

Lee McAlilly Points 3533

3.1 vous simplement se débarrasser de la "images" une partie du chemin. Donc une image qui vit en /assets/images/example.png sera effectivement accessible dans une requête get à l'url - /assets/example.png

Parce que l' assets/images le dossier est généré avec une nouvelle 3.1 application, c'est la convention qui ils voudront vous suivre. Je pense que c'est là image_tag va la chercher, mais je ne l'ai pas testé encore.

Aussi, lors de la RailsConf keynote, je me souviens D2h dire l' public folder ne devrait pas avoir beaucoup de choses en plus, la plupart du temps simplement les pages d'erreur et d'un favicon.

98voto

tybro0103 Points 13198

Vous aurez envie de changer l'extension de ton fichier css à partir d' .css.scss de .css.scss.erb et faire:

background-image:url(<%=asset_path "admin/logo.png"%>);

Vous devrez peut-être faire un "rafraîchissement" pour voir les changements. CMD+MAJ+R sur mac OSX navigateurs.

Dans la production, assurez-vous

rm -rf public/assets    
bundle exec rake assets:precompile RAILS_ENV=production

se produit lors du déploiement.

22voto

Andrew Points 14110

Pour ce que ça vaut, quand j'ai fait ce que j'ai trouvé qu'aucun dossier à inclure dans le chemin d'accès dans le fichier css. Par exemple si j'ai app/assets/images/example.png, et j'ai mis ceci dans mon fichier css...

div.example { background: url('example.png'); }

... alors en quelque sorte la magie fonctionne. J'ai compris cela en exécutant l' rake assets:precompile de la tâche, qui aspire tout simplement tout ce qui sort de tous vos parcours de charges et de décharges dans un tiroir d'ordure dossier: public/assets. C'est ironique, IMO...

En tout cas cela signifie que vous n'avez pas besoin de mettre tous les chemins du dossier, tout dans vos dossiers assets va finir par vivre dans un immense répertoire. Comment ce système résout nom de fichier conflits n'est pas clair, vous devez être prudent à ce sujet.

Type de frustrant, il n'y a pas mieux docs là-bas pour ce grand changement.

16voto

lflores Points 1004

Dans les rails 4 vous pouvez maintenant utiliser un css et sass helper image-url:

div.logo {background-image: image-url("logo.png");}

Si vos images de fond ne s'affiche pas envisager de regarder la façon dont vous faites référence dans vos feuilles de style.

10voto

Tilo Points 13833

lorsque le référencement des images dans le CSS ou dans une balise IMG, l'utilisation image-name.jpg

alors que l'image est vraiment situé en vertu de l' ./assets/images/image-name.jpg

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X