Les images et les actifs ne fonctionne pas dans mon serveur de production sur des rails 3.1.0
-
27-10-2019 - |
Question
Je changé mon serveur à la production et je ne peux pas obtenir de mes images à la charge. Tout fonctionne très bien sur le mode de développement, mais quand je suis passé à la production tout arrêté i travailler ont permis server_static_assets et encore encore rien ne fonctionne. Toute aide à le faire
La solution
Voici quelques problèmes que vous pourriez avoir:
1 - La configuration de votre production ne peut pas être correcte. Ceci est particulièrement probable si vous avez commencé avec un début de candidat 3.1 de libération, et ont été mise à jour le long du chemin. Les options proposées pour production.rb un peu changé entre RC4 et la libération 3.1.0.
Assurez-vous que vos paramètres de production.rb comprennent:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
2 - Vous avez peut-être oublié de précompiler vos actifs
RAILS_ENV=production rake assets:precompile
3 -. Vous avez sans doute oublié de redémarrer votre serveur Web pour ramasser les changements dans production.rb
Autres conseils
Rappelez-vous d'exécuter rake assets:precompile
dans votre environnement de production.
Si vous avez besoin déployez avec Capistrano , vous pouvez utiliser cette recette:
before "deploy:symlink", "assets:precompile"
namespace :assets do
desc "Compile assets"
task :precompile, :roles => :app do
run "cd #{release_path} && rake RAILS_ENV=#{rails_env} assets:precompile"
end
end
Si vous mettez à niveau Rails 4 ou utilisez actuellement sur la production, et sont des images de chargement de css, puis:
au lieu de
background-image: url('some_image.jpg');
faire
background-image: image-url('some_image.jpg');
Voir http://guides.rubyonrails.org/asset_pipeline.html#css -et-SASS pour référence