我已經使用 github 在 vercel 上部署了我的 Web 應用程式。前端已加載,但前端發出的 api 請求未找到 404。順便說一句,這是 MERN 應用程式 這是我的 vercel.json
{ "buildCommand": "cd client && npm install && ./node_modules/vite/bin/vite.js build", "outputDirectory": "client/dist", "framework": "vite", "rewrites": [ { "source": "/api/(.*)", "destination": "/index.js" } ] }
這是index.js
const express = require("express"); const cors = require("cors"); const mongoose = require("mongoose"); const cookieParser = require('cookie-parser'); const router = require('./router/router'); const setupCronJob = require('./cron'); const fs = require('fs'); require('dotenv').config(); const app = express(); app.use(express.json()); app.use(cookieParser()); // for reading cookies const allowedOrigins = ['http://127.0.0.1:5173','https://cozy-stay.vercel.app']; const corsOptions = { credentials: true, origin: allowedOrigins, methods: 'GET, POST, PUT, DELETE', allowedHeaders: 'Content-Type, Authorization, Cookie' }; app.use(cors(corsOptions)); const port = process.env.PORT || 4000; mongoose.set("strictQuery", false); mongoose.connect(process.env.MONGO_URL, { useNewUrlParser: true, useUnifiedTopology: true, serverSelectionTimeoutMS: 10000, }).then(()=> { console.log('Connected to database') }).catch(err=>{ throw err; }) setupCronJob(); app.use('/api',router); app.listen(port);
這是目錄img
前端已經可用,但 api 無法正常工作,我認為 api 尚未載入。請幫我
目前發生的情況似乎是
https://cozy-stay.vercel.app/api
路徑請求前往前端伺服器,而不是您期望的後端伺服器:修復01
您可以為前端和後端使用兩個 vercel 應用程式:
修復02
您可以執行負載平衡器,將所有帶有
/api
前綴的請求傳送到後端,將其他請求傳送到前端。 IDK vercel 平台支援此功能。