2010-05-17 6 views

Répondre

1

C'est votre mode de développement qui fait en sorte que rien ne soit mis en cache de sorte que si vous changez l'image, elle arrive dans le navigateur. la version de production ne l'aura pas.

+0

aucun homme, je me suis même sur la production trop – Filip

2

Ceux-ci sont référencés Asset Timestamps ils peuvent être utilisés par le serveur pour mettre en cache des fichiers. Par exemple disons que vous avez un fichier appelé file.jpg sur votre serveur, vous pouvez configurer votre serveur pour dire aux navigateurs comme firefox de mettre en cache le fichier.jpg afin que la prochaine fois que ce navigateur visite votre page web il charge plus vite car file.jpg était déjà en mémoire.

Le problème vient lorsque vous téléchargez une nouvelle file.jpg parce que même si l'image est différente, vos anciens utilisateurs qui ont le cache de l'image voir encore l'image en cache, c'est là horodatages d'actifs entrent en jeu. Ces chiffres représentent un horodateur du moment où le fichier a été mis à jour, donc si vous remplacez file.jpg? 123456789 par file.jpg? 987654321, le navigateur de l'utilisateur n'utilisera pas la version mise en cache.

http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

longue histoire courte, il est seulement là pour vous aider et ne modifie pas la façon dont le fichier se comporte du tout. Les utilisateurs peuvent toujours télécharger le fichier et les systèmes d'exploitation le verront comme étant un .jpg valide.

+0

eh oui, mais quand vous traitez avec IE6 et FIXPNG il brise votre script – Filip

+0

ActionView :: Helpers :: AssetTagHelper.cache_asset_timestamps = false – Schneems

+0

que wont travail, je l'ai écrit la solution – Filip

0

Solved ajouter à environment.rb => ENV [ 'RAILS_ASSET_ID'] = ''

Conclusion: oui, son bon rails des choses, mais quand vous traitez avec des images PNG IE6 et il peut casser scénario. Donc sois prudent.

Questions connexes