Heroku (Cedar) + Node + Express + Jade Les fichiers javascript côté client dans les sous-répertoires fonctionnent localement avec le contremaître + curl mais pas lorsqu'ils sont poussés vers Heroku

Je suis très nouveau sur node and heroku et je pense que c'est une sorte de problème d'autorisation simple, etc., mais je ne peux pas le rattraper.

J'ai plusieurs fichiers javascript purs dans un sous-répertoire un niveau sous mon répertoire racine où mon fichier web.js est assis. J'ai une ligne dans mon fichier web.js pour spécifier le répertoire

app.use('/heatcanvas',express.static(__dirname+'/heatcanvas')); 

Si je lance mon application localement avec Heroku Foreman, je reçois la réponse js attendue lorsque je lance la commande Curl suivante

  curl localhost:5000/heatcanvas/heatcanvas.js 

Cependant, lorsque je pousse Heroku et que je clique sur l'URL en direct correspondante dans le navigateur

 www.example.com/heatcanvas/heatcanvas.js 

Je reçois ce qui suit:

  Cannot GET /heatcanvas/heatcanvas.js 

Si je vérifie Firebug et / ou les journaux de Heroku, je vois que j'avais réellement 404 erreurs pour ces fichiers même si le cheminement correspond à ce qui se fait localement. Il est également intéressant de mentionner que le javascript de tierces parties se déroule très bien. Ce n'est que lorsque l'attribut src de la balise de script marque sur mon site qu'il y a un problème. Que dois-je faire pour que mes scripts soient disponibles?

Je vous recommande d'utiliser la valeur process.cwd () pour obtenir un répertoire spécifique

 process.env.PWD = process.cwd() 

Au tout début de votre web.js

Vous permet d'accéder facilement aux fichiers.

Tu peux faire

 app.use('/heatcanvas',express.static(process.env.PWD+'/heatcanvas')); 

à la place d'utiliser

 __dirname 

Avertissement: Assurez-vous d'exécuter web.js au répertoire racine de web.js (Heroku web.js est exécuté de cette façon)