我在将应用程序部署到heroku时遇到问题。我在内置文件夹中有react app的输出(路径:/client/build/index.html)
server.js
<ul class="nav flex-column" id="menu">
Procfile
const express = require('express');
const path = require('path');
const cors = require('cors');
const passport = require('passport');
app.use(express.static(path.resolve(__dirname + '/client/build')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname+'/client/build/index.html'));
});
const port = process.env.PORT || 5000;
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.use(cors())
mongoose.connect(process.env.MONGODB_URI)
.then(() => console.log("success"))
.catch(err => console.log(err))
app.use(passport.initialize());
require('./config/passport')(passport);
const server = app.listen(port, function(err) {
if (err) {
return;
}
console.log('server listening on port: %s', port);
});
package.json(服务器) {
web: node server.js
可以从构建文件夹中显示我的reactApp吗?如何部署服务器?在Procfile中放置命令是否足够?还是应该在package.json中添加“ heroku-postbuild”?感谢您的帮助
PS。推送到heroku后,我得到了这个index.html文件,但是空白页和服务器无法正常工作。
答案 0 :(得分:0)
在server.js
中,您的app
对象没有在app = express()
中定义