我的情况
我可以使用 vercel.json 将 API 部署到 Vercel 的生产环境中:
{
"builds": [{ "src": "backend-build/index.js", "use": "@now/node-server" }],
"routes": [
{
"src": "(.*)",
"methods": ["GET", "POST", "PATCH", "DELETE", "OPTIONS"],
"headers": {
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept",
"Access-Control-Allow-Credentials": "true"
},
"dest": "backend-build/index.js",
"continue": true
}
]
}
这是我制作的 API 示例: https://kijiji-backend.vercel.app/api/test
问题
但是!尝试在 Node.js 中提供我的 React 构建文件夹(使用 React 的 npm run build
创建)时:
app.use("/api/test", (req, res) => {
res.send("hi");
});
//Render React App
//All other roues will be handled by
app.use(express.static(path.join(__dirname, "build")));
app.get("*", function (req, res) {
res.sendFile(path.join(__dirname, "build", "index.html"));
});
该网站实际上不会呈现任何 React(空白页面)。如这里所见: https://kijiji-backend.vercel.app
您可以在浏览器控制台中看到,有一个错误:
2.b2517795.chunk.js:1 Uncaught SyntaxError: Unexpected token '<'
这一切都在我的计算机本地运行,但是,当部署到 Vercel 时,React 不会呈现。