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)