Je suis juste en train de me familiariser avec des rails 3.1, et j'ai brûlé un certain temps à la mise à jour d'un ancien projet et essayant de déterminer la manière dont le nouveau pipeline d'actif se comporte en mode de développement par rapport à la production. P>
La valeur par défaut Évidemment, il existe des situations lorsque nous ne voulons pas cela, nous pouvons donc ajouter des éléments à la liste dans cette variable de configuration ... P>
Voici la situation que j'ai rencontrée avec mon projet Sandbox lors de la production: P>
Ne sachant pas comment aborder cela, je suis allé dans des cercles plusieurs fois jusqu'à ce que je pensais avoir tous les actifs et le site rendu en production. Ensuite, je l'ai essayé dans msie et frappe une autre erreur 500: "belated_png_fix.js" em> était chargé de manière conditionnelle, et il n'a pas reculé jusque-là. P>
Donc, ma question est autre que ma question, autre que l'essai et l'erreur ou une forte dépendance à l'essai d'intégration, comment puis-je prédire que mon site ne va pas bombarder lorsque le pipeline d'actif découvre que certains stylesheet ou JavaScript n'étaient pas ajoutés à la liste de précompiler? P>
Je suis également curieux Pourquoi un actif de la feuille de style manquant doit entraîner une erreur de la page de la totalité de 500 au lieu de simplement la compiler à la demande ou la servant A 404 lorsque cet actif est demandé. Est-ce un design délibéré pour "échouer tôt"? P> config.assets.precompile code> se bénisse seulement
stylesheet_link_tag code> Helper avant de rendant la page.) LI>
Rake Assets: Précompile CODE> ET ÉTÉ ESSÉDUÉ. LI>
config.assets.precomple code> et essayé à nouveau. li>
4 Réponses :
J'ai eu des problèmes similaires avec des rails 3.1 aussi. La meilleure chose à faire est d'installer Capistrano Multi Stade et d'obtenir un serveur de stadification. p>
Si cela n'est pas possible, installez une machine virtuelle sur votre ordinateur et essayez de reproduire votre environnement de serveurs. P>
Oui, je le fais déjà, essentiellement. Il tombe sous la rubrique «Essai-and-Error» (qui pourrait certainement être automatisé de tests d'intégration ... peut-être qu'il n'y a pas de meilleur moyen.)
Cela peut être surchargé, mais cela fonctionne pour moi (cela me donne des actifs propres, compilés). J'ai cela dans mon fichier .bash_profile. et ceci dans ma configuration / environnements / production.rb (Production des forces pour compiler en cas de besoin; ne devrait pas être nécessaire si je me souviens de Exécuter "ggo" d'abord): p> Donc, mon flux de travail est:
1. Code
2. Git Add & Git Engagement
3. Si j'ai touché des fichiers CSS / Sass / JS / Coffeescript, je gère GGO. Sinon, je fais un déploiement de capuchon normal. P> p>
Truc utile, mais le problème est que le précompilisation n'agit que sur des articles qu'il connaît. L'astuce consiste en quelque sorte à déterminer quelles ressources étaient liées de diverses vues et en veillant à ce qu'elles soient ajoutées à la liste.
Le déploiement continu est une bonne chose, et vous devriez aller au point de savoir où il est si simple que ce n'est vraiment pas douloureux de toute façon. Qui étant dit, config.assets.precomplets. / code> peut prendre des regexs, alors que diriez-vous de proposer une standard pour les fichiers "Manifest" de haut niveau, ou un sous-dossier standard pour les choses qui ne seront pas fournies. en haut? (Notez que je n'ai pas encore essayé cela ...) p>
Je viens de publier un joyau appelé actifs_procompile_forcer , ce qui garantit que les développeurs n'oublieront pas d'ajouter Actifs à Cela signifie que les erreurs d'actif seront capturées pendant le développement, au lieu d'être découvertes après le déploiement de la production. P> CONFIG.ASSETS.PRECOMPILE CODE> pendant qu'ils se développent. Une exception sera soulevée si vous incluez un actif via
javascript_include_tag code> ou
stylesheet_link_tag code>, et il ne correspond pas à un filtre dans config.assets.precompile. P>
J'ai récemment converti une ancienne application au pipeline d'actif et n'avait aucun problème. Il m'a fallu un moment pour savoir comment tout a fonctionné ensemble. Pour répondre à votre question, pouvez-vous montrer le contenu de vos fichiers CSS et JS, en particulier les déclarations requises? Je suis également intéressé par la façon dont vous les appelez à partir de la vue. Enfin, sont-ils tous dans les applications / actifs ou utilisez-vous lib / actifs et fournisseurs / actifs aussi?