Deploy Nodejs on Heroku fails serving static files located in subfolders
Finally I found the solution.
I solved that just adding the npm version in my package.json.
{ "name": "bla", "version": "0.0.1", "dependencies": { "express": "3.2.6" }, "engines": { "node": "0.10.11", "npm": "1.2.25" } }
Apparently, as explain in this question: Heroku(Cedar) + Node + Express + Jade Client-side javascript files in subdirectory work locally with foreman+curl but not when pushed to Heroku, you can't use __dirname with Heroku.
The alternative seems to be:
// At the top of your web.js
process.env.PWD = process.cwd()// Then
app.use(express.static(process.env.PWD + '/htdocs'));
If none of these solutions worked, check my solution.
Make sure that the sub directories of your directory are added to your Git repository.