You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署SvelteKit应用:如何在生产环境实现API代理至不同端口后端

SvelteKit生产环境API代理实现方案

方案一:基于SvelteKit Adapter Node自定义服务(推荐)

SvelteKit的adapter-node编译后会生成可执行的Node服务,你可以直接在此基础上扩展代理逻辑,无需额外搭建独立Express项目:

  1. 安装代理依赖:npm install http-proxy-middleware
  2. 确保项目已配置adapter-node,执行编译:npm run build
  3. 在项目根目录创建自定义server.js文件:
import { createServer } from 'node:http';
import { handler } from './build/handler.js';
import { createProxyMiddleware } from 'http-proxy-middleware';

const server = createServer(handler);

// 配置/api前缀的请求代理到后端
server.use(
  '/api',
  createProxyMiddleware({
    target: 'http://你的后端域名或IP:端口',
    changeOrigin: true,
    pathRewrite: { '^/api': '' } // 若后端接口无/api前缀,可删除此配置
  })
);

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
  console.log(`服务运行在端口 ${PORT}`);
});
  1. 启动生产服务:node server.js

方案二:利用部署平台的路由规则

如果你的应用部署到Vercel、Netlify、Cloudflare Pages等平台,直接用平台自带的重写/代理配置即可,无需编写额外服务代码:

  • Vercel:在项目根目录创建vercel.json
{
  "rewrites": [
    {
      "source": "/api/(.*)",
      "destination": "http://你的后端地址:端口/api/$1"
    }
  ]
}
  • Netlify:创建_netlify.toml
[[redirects]]
  from = "/api/*"
  to = "http://你的后端地址:端口/api/:splat"
  status = 200
  force = true

方案三:用Express独立托管编译后的静态文件

这种方式完全可行,适合已有Express服务栈的场景:

  1. 安装依赖:npm install express http-proxy-middleware
  2. 编译SvelteKit项目(若使用adapter-static,需确保前端API请求路径配置正确):npm run build
  3. 编写Express服务文件server.js:
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const path = require('path');

const app = express();

// 托管编译后的静态资源
app.use(express.static(path.join(__dirname, 'build')));

// 配置API代理
app.use(
  '/api',
  createProxyMiddleware({
    target: 'http://你的后端地址:端口',
    changeOrigin: true
  })
);

// 处理SPA路由刷新问题,所有非API请求返回index.html
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`服务运行在端口 ${PORT}`);
});
  1. 启动服务:node server.js

内容的提问来源于stack exchange,提问作者Davide Ferrero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:05:40