I am new to Heroku and believe I am following all of the steps outlined on Heroku's website to deploy via node.js – https://devcenter.heroku.com/articles/getting-started-with-nodejs – but despite indications of success, I only see this in the browser when I go to my newly-generated herokuapp.com site.

Cannot GET /

No errors when executing

git push heroku master

My Procfile is simply

web: node app.js

I dont quite understand dynos yet, but there seems to be one running:

heroku ps === web (1X): node app.js web.1: up 2014/07/03 23:55:00 (~ 18m ago)

Then:

heroku open Opening APP-NAME... done

But https://APP-NAME.herokuapp.com/ just displays the Cannot GET / message.


Solution 1:

I had my dist directory included in my .gitignore file so I was not committing dist to my repo and not pushing it to Heroku. Therefore, Heroku could not find any content to serve.

I updated my .gitignore, committed, and pushed, and my app shows up just fine on Heroku now.

Solution 2:

almost 3 years, but I'm answering for reference.

  • generally /dist is a build process generated directory, it's temporary and changes a lot while working in our sources, so /dist is not versioned.
  • on your package.json you can add a script called postinstall with this build process, let's say you have a task in gulp called build...so "postinstall": "gulp build"
  • if you manage your project's dependencies in bower too, npm install --save bower and "postinstall": "./node_modules/bower/bin/bower install && gulp build"

Just a simple example croped for your package.json

{
   "dependencies: {
    "bower":"^1.8.0",
    "grunt":"^1.0.1",
   },
   "scripts": {
    "start": "node ./www.js",
    "build": "grunt dist",
    "postinstall": "./node_modules/bower/bin/bower install && npm run build"
   }
}

Obvious you're probably done and better nowadays...I'm just referencing it for next consultings.