0

J'ai précompilé les actifs en production mais l'application n'est pas en mesure de charger les actifs. Mon application est déployée sur AWS EC2Actifs non rendus dans les rails de production

enter image description here

J'ai vérifié dans le serveur d'actifs publics/dossier du application.css est présent. enter image description here mais toujours il dit erreur 404.

Ma configuration production.rb est

enter image description here

Mes paramètres nginx.conf sont: enter image description here

+0

Quel type d'environnement est la "production" (Heroku, aws, etc. –

+0

Son déployé sur AWS ec2 – Prem

+0

À quoi ressemble votre configuration de serveur Web (nginx?)? – phillyslick

Répondre

0

Le 404 est basé sur cette ligne dans votre config: config.serve_static_files = true. Cela pourrait être le mauvais nom en fonction de la version de votre rail. Je crois que ce paramètre est nommé config.serve_static_assets dans Rails avant la version 5.

Si vous ne possédez pas de serveur (nginx/etc), vous voulez que ce paramètre soit vrai. Sinon, vous devez reconfigurer votre serveur pour qu'il pointe vers votre répertoire/public, et assurez-vous que rake assets:precompile fonctionne correctement.

+0

J'ai un serveur nginx sur ec2. Devrais-je le rendre vrai ou faux? – Prem

+0

Définissez-le sur false. "true" signifie que les rails serviront les fichiers, "false" signifie que quelque chose d'autre (nginx) servira les fichiers. Mais vous devez également vous assurer que votre configuration nginx pointe vers le répertoire "public" de votre application rails. – RipTheJacker

+0

Merci beaucoup @RiptheJacker. J'ai vérifié mon fichier nginx.conf et pointé la racine avec le chemin public correct et il a résolu le problème. – Prem

0

J'ai eu le même problème

ensemble config.assets.compile = True

Il fonctionne pour moi.

+0

Essayé mais ne fonctionnant pas. – Prem

0

Le problème était que ma configuration dans nginx du chemin racine était incorrecte. donc les actifs ne pointaient pas sur le mauvais chemin.

je changé en nginx.conf:

de root /home/deploy/appname/public à root /home/deploy/appname/current/public

ET dans production.rb

config.serve_static_assets = true-config.serve_static_assets = false

0

Je l'ai fait la même chose que vous:

root /home/deploy/appname/public root => /home/deploy/appname/current/public 

Et cela fonctionne pour moi. Avec la différence que je suis parti unique, le fichier de configuration /production.rb comme ceci:

config.public_file_server.enabled = true 

config.assets.compile = true 

J'utilise Rails 5.