Deploy Nodejs on Heroku fails serving static files located in subfolders

a 夏天 提交于 2019-11-27 05:01:31

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"
    } 
}
Aurélien Thieriot

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.

I struggled with this for a while and had to revert to using /public (from /dist) as the static folder - works perfectly now

In my case, I had a step in my build that was actually wiping out the /public folder, and then adding back in a bundle.js and bundle.css.

So on my local I didn't see it, but when it was deployed to Heroku the assets were missing.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!