【问题标题】:Heroku won't load index.htmlHeroku 不会加载 index.html
【发布时间】:2015-01-20 05:53:55
【问题描述】:

我正在尝试使用 Heroku 创建一个 node.js 应用程序。在我的 server.js 文件中,我使用 express 加载静态 html 页面。这是我的 server.js 文件中的快速代码。在 Heroku 的 procfile 中,我将此设置为起点。

var app = require('express')();

var http = require('http').Server(app);

app.get('/', function(req, res){
  res.sendFile(__dirname + 'index.html');
});

但是当我将它推送到 Heroku 时,Heroku 没有显示任何内容,因此也没有错误。

server.js、index.html在同一个文件夹

【问题讨论】:

标签: javascript heroku


【解决方案1】:

这是你的整个server.js吗?如果是这样,您需要指定一个要监听的端口:

var app = require('express')();
var server = require('http').Server(app);
server.listen(80);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});
console.log('Express server started on port %s', server.address().port);

编辑:正如@Abdelouahab 建议的那样,您不应该对端口进行硬编码,而是从 process.env.PORT 中获取它

var port = process.env.PORT || 3000;
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});
app.listen(port, function() {
  console.log("Node app is running at localhost:" + app.get('port'))
});

https://devcenter.heroku.com/articles/getting-started-with-nodejs#push-local-changes

Node.js port issue on Heroku cedar stack

【讨论】:

  • 在 Heroku 中建议不要硬编码端口 app.set('port', process.env.PORT || 80) var server = app.listen(app.get('port'), function () { console.log('working! on port ' + app.get('port')) })
猜你喜欢
  • 2018-06-05
  • 2017-12-31
  • 2017-01-12
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 2019-09-27
相关资源
最近更新 更多