Heim > Fragen und Antworten > Hauptteil
Ich habe meine Webanwendung mit Github auf Vercel bereitgestellt. Das Frontend ist geladen, aber API-Anfragen vom Frontend werden mit 404 nicht gefunden. Das ist übrigens eine MERN-App Das ist mein 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" } ] }
Das ist 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);
Dies ist das Verzeichnis img
Das Frontend ist bereits verfügbar, aber die API funktioniert nicht richtig. Ich denke, die API ist noch nicht geladen. Bitte hilf mir
P粉5415512302024-01-30 00:48:05
目前发生的情况似乎是 https://cozy-stay.vercel.app/api
路径请求转到前端服务器,而不是您期望的后端服务器:
Request URL: https://cozy-stay.vercel.app/api/all-places Request Method: GET Status Code: 404 Remote Address: 76.76.21.9:443 Referrer Policy: strict-origin-when-cross-origin
您可以为前端和后端使用两个 vercel 应用程序:
您可以运行负载均衡器,将所有带有 /api
前缀的请求发送到后端,将其他请求发送到前端。 IDK vercel 平台支持此功能。