“require_tree argument doit être un répertoire” rails 3.1.1 précompiler des actifs
J'ai été en rond ici à essayer de trouver les biens à des pré-compiler sur mon serveur de production (simple ubuntu installer ruby 1.9.2 et les Rails 3.1.1, et essayé 3.1.2 RC avec les nouveaux pignons 2.10 ainsi).
"require_tree argument doit être un répertoire". J'ai vu d'autres questions liées à la pile, mais la situation n'est pas exactement la même, et qu'aucune des solutions proposées ont contribué – comme créer un fichier stub dans le sous-dossier, puis de référence relativement à ce point. Pas de chance.
Et pour couronner le tout, bien sûr, cela fonctionne parfaitement sur toutes les machines de développement (mac, mais avec les mêmes configs, même assortis gem gem), dans la production env.
Voici mon /app/assets/javascript/application.js:
//= require ../../views/app/manifest
//= require_self
Pas beaucoup à elle. Fondamentalement, il suffit de pointer les vrais fichier manifeste de l'application de la zone (ouais, pas exactement en boîte vanille Rails, mais...)
Voici mon talon manifeste dans mes vues/admin (/views/app/manifest.coffee.js):
# = require ./app
# = require_tree ./models
# = require_directory ./views <- or using require_directory, either would work fine.
Comme je l'ai dit, dans les env de dev, pas de problèmes du tout. L'asset pipeline compile à la volée et tout est grand. En cours d'exécution, râteau actifs:précompiler sur le dev de la machine, pas de problèmes non plus.
- Je l'envoyer à la machine de production et d'exécuter exactement le même code et j'obtiens:
require_tree argument doit être un répertoire
Il y a quelques tiny différence ici que je suis tout simplement pas voir. Toute aide serait grandement appréciée!
- vraiment, vous devez les déplacer d'actifs lorsque leur appartient, et de ne pas les mettre dans le dossier app/view répertoire
- Il est un peu plus compliqué alors montré dans cet exemple simplifié. Les vues sont étroitement liés aux actifs et plus de sens d'être physiquement situé.
- Se pourrait-il que manifest.coffee.js doit être manifeste.js.le café?
- Ajouter
.gitkeep
fichiers (ou.gitignore
fichiers de votre vide dirs.
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré exactement le même problème que vous avez décrit. Mon serveur de production a été Heroku (cèdre de la pile). Dans mon cas, le problème était que l'un de mes:
A été pointant vers un légitime répertoire, mais ce répertoire n'avait pas de fichiers. Sur dev il n'a pas d'importance, mais quelque chose à propos de la production de l'installation a entraîné dans l'erreur, “require_tree argument doit être un répertoire”.
Espérons que cette aide.
require_tree doit être donné un dossier existant, mais git n'est pas stocker des dossiers vides
par conséquent, lorsque vous déployez sur heroku, ces dossiers vides n'existe pas.
une astuce consiste à ajouter un vide .garder fichier dans les dossiers que vous souhaitez conserver.