64 votes

Rails 4 images ne chargeant pas sur heroku

J'ai passé la meilleure partie de la journée à essayer d'obtenir des images à charger sur mon heroku app. Tout ce que j'essaie fonctionne en local, mais pas après avoir été déployé sur heroku.

J'ai png fichiers enregistrés dans le dossier images de mon actifs. Je suis le référencement de ces images avec la syntaxe dans mon css tels que;

#signin{background: url(<%= asset_path 'sf.png' %>);
 background-size: 100%;}

Dans heroku quand j'ai inspecter le fond de l'actif/sf.png lien est là, mais lorsque vous cliquez dessus, il montre une image brisée, ce qui suggère qu'il ne s'est pas chargé correctement.

J'ai essayé de basculement " config.serve_static_assets = false' dans la production.rb fichier entre le vrai et le faux et aucun ne fonctionne.

J'ai aussi group :production do gem 'pg' gem 'rails_12factor' end

Précompiler est toujours couronnée de succès.

Rails 4. Toutes les idées sur ce que d'autre à essayer?

92voto

kal Points 481

J'ai besoin de combiner plusieurs solutions pour que cela fonctionne, voici ce que j'ai fait:

sur Gemfile:

 gem 'rails_12factor', group: :production
 

sur la console Heroku:

 heroku labs:enable user-env-compile -a yourapp
 

sur production.rb

 config.serve_static_assets = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
config.assets.compile = true
 

et je n'avais pas besoin de précompiler les actifs localement.

27voto

brad Points 346

Un autre problème que j'ai eu avec, c'était que j'étais la précompilation de mes actifs localement, avant le chargement à heroku. Cela vous oblige à suivre un autre ensemble de mesures, qui peuvent être trouvés ci-dessous. Si vous précompiler vos actifs localement, vous devez suivre ces étapes ou les mises à jour apportées à votre dossier des actifs ne seront pas reflétées dans prod.

https://devcenter.heroku.com/articles/rails-asset-pipeline

RAILS_ENV=production bundle exec rake assets:precompile

commit et push de serveur.

12voto

Percevalve Points 41

J'ai eu un problème similaire et je l'ai résolu avec la ligne suivante dans le fichier custom.css.scss .. Dites-moi si cela fonctionne pour vous.

 background: image-url('sf.png')
 

Si vous utilisez ERB ou Sass, le référencement de l'actif s'effectue de différentes manières, reportez-vous au Guide Ruby on Rails .

3voto

alightholder Points 31

Je n'ai pas encore la réputation de commenter, mais il est important de noter que la fonctionnalité des laboratoires Heroku a été supprimée. Par conséquent, vous obtiendrez désormais l'erreur "Aucune fonctionnalité de ce type: compilation utilisateur-env."

Plus: https://github.com/Crowdtilt/CrowdtiltOpen/issues/251

-1voto

nXqd Points 2805

Les images ne seront pas servies en tant qu'actifs par défaut, seulement css et js. Vous devriez regarder dans la réponse de

Syed Ehtsham Abbas dans cette question, Heroku NE compile PAS les fichiers sous les colonnes d'actifs dans Rails 4

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