8
votes

Rails 4 actifs ne précompile toujours pas dans Heroku malgré l'installation de la gemme Rails_12Factor

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 rails_12Factor 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.

Une chose que j'ai remarquée de courir Heroku Run ls Public / Actif Est-ce que Heroku était en mesure de précompiler les actifs de app / actif et faire un chat La commande 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.

L'HEROKU est-il réellement prêt pour les rails 4?

Modifier :

Voici une liste des choses que j'ai faites pour passer de 3.2.13 à 4:

  • Groupe d'actifs supprimé comme il n'est plus utilisé dans les rails 4

  • Version de mise à jour des rails à partir de 3.2.13 à 4.0.0

  • Suppression de la ligne de Active_Resource / Railties à partir de l'application.rb car Active_Resource a été supprimé comme une dépendance des rails

  • 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

  • Version de mise à jour du congise à 3.0.0.rc

  • Ajouter protégé_attributes Pour faciliter la transition vers des rails 4 sans avoir à passer à Strong_Parameters encore

  • change Environment Configs Pour ajouter config.Eegerload et supprimer config.whiny_nils pour supprimer les avertissements de dépréciation.

  • modifier la syntaxe de confirmation () pour supprimer les avertissements d'amortissement

  • Modifiez la syntaxe de hachage de fusées de hachage à la syntaxe 1.9.3

  • Supprimer auto expliquer la configuration pour supprimer les avertissements d'amortissement

  • Ajouter un répertoire bin à l'aide de rails de rake: mise à jour: bac

  • Ajouter rails_12Factor GEM pour pouvoir accueillir à Heroku

  • Ajouter une version rubis dans gemfile pour Heroku

    EDIT 2

    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.


12 commentaires

Avez-vous déplacé les gemmes de actifs 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


J'ai couru middleware rake . 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/...


4 Réponses :


1
votes

Essayez de déplacer tous les gemmes de actifs 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.


1 commentaires

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.



-3
votes

Dans votre fichier de production.rb, assurez-vous que vous avez la ligne config.assets.comple = true . Cela a résolu le problème pour moi.


1 commentaires

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.



0
votes

Utilisation d'une version pour moins travaillé pour moi xxx


0 commentaires

0
votes

Je rencontre dans le même problème. Je les précalcule maintenant localement xxx

et ajoutez-les au référentiel et poussez-les à Heroku.


0 commentaires