在Heroku上部署Ionic2

Jef*_*eff 4 heroku node.js ionic2

我正在尝试在Heroku上部署ionic2应用程序。我看了这些站点:

并创建了一个server.js文件:

var express  = require('express');
var app      = express();                               // create our app w/ express
var morgan = require('morgan');             // log requests to the console (express4)
var bodyParser = require('body-parser');    // pull information from HTML POST (express4)
var cors = require('cors');

app.use(morgan('dev'));                                         // log every request to the console
app.use(bodyParser.urlencoded({'extended':'true'}));            // parse application/x-www-form-urlencoded
app.use(bodyParser.json());                                     // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
// app.use(methodOverride());
app.use(cors());

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'DELETE, PUT');
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.use(express.static('www'));
app.set('port', process.env.PORT || 5000);
app.listen(app.get('port'), function () {
  console.log('Express server listening on port ' + app.get('port'));
});
Run Code Online (Sandbox Code Playgroud)

由于此时我没有模型,也没有数据库,因此我排除了mongo和mongoose。

通过本地计算机运行服务器时,服务器运行良好,npm start但是在heroku上运行服务器,则得到:

Cannot GET /
Run Code Online (Sandbox Code Playgroud)

在页面上。Heroku Logs显示:

2017-01-04T19:56:59.385666+00:00 heroku[web.1]: State changed from starting to up
2017-01-04T19:57:00.546815+00:00 heroku[router]: at=info method=GET path="/" host=hrmghp-companion.herokuapp.com request_id=4c010120-3dce-4f99-b31c-99dc0883f314 fwd="108.44.230.178" dyno=web.1 connect=1ms service=49ms status=404 bytes=364
2017-01-04T19:57:00.549928+00:00 app[web.1]: GET / 404 19.924 ms - 13
Run Code Online (Sandbox Code Playgroud)

我在server.js文件中丢失了什么吗?

编辑: 我发现了问题。我曾www/在我的.gitignore文件。我以为部署到heroku时会重建应用程序?这不是它的工作原理吗?

Ale*_*sky 5

不要添加www到您的存储库。您不想跟踪所有这些文件。相反,请包括"postinstall": "ionic-app-scripts build"scriptspackage.json 的部分中。这将重建应用程序,并www在Heroku上为您重新生成文件夹。