Deploy Nodejs on Heroku fails serving static files located in subfolders

前端 未结 6 1700
一整个雨季
一整个雨季 2020-11-30 12:30

I\'m deploying a NodeJs application using Heroku. Everything works fine except a little issue serving static files.

I have the following configuration



        
相关标签:
6条回答
  • 2020-11-30 12:46

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

    0 讨论(0)
  • 2020-11-30 12:49

    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'));

    0 讨论(0)
  • 2020-11-30 12:56

    If none of these solutions worked, check my solution.

    Make sure that the sub directories of your directory are added to your Git repository.

    0 讨论(0)
  • 2020-11-30 13:02

    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"
        } 
    }
    
    0 讨论(0)
  • 2020-11-30 13:04

    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.

    0 讨论(0)
  • 2020-11-30 13:09

    I solved the problem in my case by removing the public folder from the .gitignore file. I don't know what it was doing there.

    0 讨论(0)
提交回复
热议问题