【发布时间】:2020-04-21 15:32:53
【问题描述】:
尝试使用 Heroku 将反应投入生产。构建本身可以工作,但是当我在生产环境中打开应用程序时,我会看到一个空白屏幕,上面显示“找不到路线”。我相信这是因为构建文件夹无法访问,该文件夹及其所有内容都显示为灰色,就好像它被忽略了一样。我的其他项目以前从未这样做过,尽管这是第一次在 Heroku 上放置一个 React 应用程序。 这是我的 main.js:
const express = require('express')
const cors = require('cors')
const bp = require('body-parser')
import DbContext from "./db/DbConfig"
const port = process.env.PORT || 3000
let server = express()
DbContext.connect()
server.use(express.static(__dirname + '/../client/build'))
let whitelist = ['http://localhost:8080', 'https://ssb-stats.herokuapp.com'];
let corsOptions = {
origin: function (origin, callback) {
let originIsWhitelisted = whitelist.indexOf(origin) !== -1;
callback(null, originIsWhitelisted);
},
credentials: true
};
// @ts-ignore
server.use(cors(corsOptions))
server.use(bp.urlencoded({ extended: true }))
server.use(bp.json())
server.use((error, req, res, next) => {
console.error(error);
res.status(error.status || 400).send({ error: error.message })
})
server.use('*', (req, res, next) => {
res.status(404).send("Route not found")
})
server.listen(port, () => { console.log(`Server is running on port: ${port}`) })
我认为里面的一切看起来都很好,我不确定是包装问题还是什么,但我们将不胜感激任何帮助!
【问题讨论】:
标签: node.js reactjs heroku production-environment