J'ai récemment essayé de mettre à niveau My Rails 3.2.13 App vers le nouveau relâché 4.0.0 et essayé de le déployer à Heroku. Malheureusement, malgré la suite ce guide , les actifs ne semblent toujours pas précompiler correctement. Bien sûr, j'ai ajouté le Une chose que j'ai remarquée de courir L'HEROKU est-il réellement prêt pour les rails 4? P>
Voici une liste des choses que j'ai faites pour passer de 3.2.13 à 4: p>
Groupe d'actifs supprimé comme il n'est plus utilisé dans les rails 4 p> li>
Version de mise à jour des rails à partir de Suppression de la ligne de Mettez à jour les rails et rails de café pour utiliser leurs branches principales correspondantes, car elles utilisent des rails 4.0.0.rc2 au lieu de 4.0.0 comme dépendance p> li>
Version de mise à jour du congise à 3.0.0.rc P> li>
Ajouter protégé_attributes Pour faciliter la transition vers des rails 4 sans avoir à passer à Strong_Parameters encore P> Li>
change Environment Configs Pour ajouter config.Eegerload et supprimer config.whiny_nils pour supprimer les avertissements de dépréciation. P> LI>
modifier la syntaxe de confirmation () pour supprimer les avertissements d'amortissement p> li>
Modifiez la syntaxe de hachage de fusées de hachage à la syntaxe 1.9.3 p> li>
Supprimer auto expliquer la configuration pour supprimer les avertissements d'amortissement p> li>
Ajouter un répertoire bin à l'aide de rails de rake: mise à jour: bac p> li>
Ajouter Ajouter une version rubis dans gemfile pour Heroku P> Li>
ul>
Je suppose qu'il convient également de mentionner qu'il n'y avait aucune erreur de Heroku lors de la précompilation et il dit en fait que cela a réussi à précompiler les actifs, c'est pourquoi il est étrange qu'il ne fonctionnait pas. P> rails_12Factor code> GEM déjà et j'ai également fait quelques éléments pour mettre correctement la mise à niveau de l'application à 4.0.0. Cela fonctionne très bien au mode de développement et tous mes tests sont toujours en train de passer. Cependant, cela ne présente toujours pas les actifs de Heroku. P>
Heroku Run ls Public / Actif Code> Est-ce que Heroku était en mesure de précompiler les actifs de
app / actif code> et faire un
chat La commande code> sur ces fichiers affichera la version compilée de l'actif. Cependant, si j'accède au fichier sur le navigateur, je reçois toujours un 404. P>
3.2.13 code> à
4.0.0 code> p> li>
Active_Resource / Railties Code> à partir de l'application.rb car Active_Resource a été supprimé comme une dépendance des rails p> li>
rails_12Factor CODE> GEM pour pouvoir accueillir à Heroku P> Li>
4 Réponses :
Essayez de déplacer tous les gemmes de actifs code> Groupe dans la portée principale. Le groupe d'actifs n'est plus utilisé dans les rails 4 et cela peut causer le problème. P>
Oui, je l'ai déjà fait ça. C'est en fait l'une des premières choses énumérées dans le guide de mise à niveau.
Dans votre fichier de production.rb, assurez-vous que vous avez la ligne config.assets.comple = true code>. Cela a résolu le problème pour moi. P>
Cela signifie que les actifs vont compiler à la demande et ne pas utiliser de précompilation. Ils seront mis en cache mais ce n'est pas aussi rapide que la précompilisation.
Utilisation d'une version pour moins travaillé pour moi
Je rencontre dans le même problème. Je les précalcule maintenant localement et ajoutez-les au référentiel et poussez-les à Heroku. p> p>
Avez-vous déplacé les gemmes de
actifs code> groupe dans gemfile? Ce groupe n'est plus utilisé dans les rails 4.
Ok, une autre devinette sauvage. Vous n'avez pas d'actifs compilés en public / actifs / production dans Git Repo? (Demander des questions muettes comme il se semble que vous avez pris soin de tout le reste)
Êtes-vous en train de dire que je devrais précompiler les actifs localement et l'avoir vérifié dans Git? Heroku n'est-il pas censé précompiler les actifs lors du déploiement? Au moins, c'est ce que cela fait pour moi quand j'étais toujours le 3.2.13.
Non, le contraire. Mais si Heroku détectait des actifs compilés, il ne le ferait pas sur la poussée. Je cherche vraiment des erreurs stupides ici
Avez-vous un cache activé? Peut-être que le fichier manifeste a été mis en cache?
Pour autant que je sache, je ne pense pas que j'ai mis en cache activé. Je cherche en fait des erreurs stupides aussi bien que je suis assez certaine que j'ai tout fait d'instruction de Heroku correctement.
Heroku active rack :: cache par défaut! Vérifiez-le avec
Rake Middleware Code>
J'ai couru
middleware rake code>. Rack :: Le cache n'est pas utilisé. J'ai essayé de créer une nouvelle application de Rails et de l'a déployé à Heroku. Pour une raison quelconque, les actifs sont compilés correctement dans la nouvelle application. Je vais probablement regarder les différences entre les deux.
Bonjour, j'ai mis à niveau mes rails 3.2 Application aux rails 4, j'ai lu votre question et j'ai le même problème avec les actifs app. Je peux voir les fichiers compilés sous public / actif sur Heroku, mais pour une raison quelconque lorsque j'essaie d'y accéder du navigateur, ils semblent être vides. Avez-vous eu des progrès?
@Alexandergiraldo je l'ai laissé tomber. Je perdais beaucoup de temps la modernisation, alors je suis de retour à 3.2
@Alexandergiraldo Avez-vous réussi à le faire fonctionner? Merci!
Vous pouvez regarder cette discussion sur Stackoverflow - [Entrez la description du lien] [1] [1]: Stackoverflow.com/questions/16271696/...