将微信小程序部署到本地服务器,通常是指在开发阶段使用自己的本地服务器作为后端服务。这在调试和测试阶段非常常见,但需要注意的是,正式上线时建议将服务器部署到公网可访问的云服务器上,否则微信小程序无法通过X_X访问你的本地服务。
下面是一个完整的指南,帮助你实现将微信小程序连接到本地服务器:
🌐 一、为什么需要部署到本地服务器?
- 方便本地调试
- 测试接口功能
- 不依赖公网服务器
🛠️ 二、前提条件
- 微信开发者工具已安装
- 本地后端服务运行中(如 Node.js、PHP、Python Flask/Django 等)
- 小程序项目中有网络请求逻辑(
wx.request)
🧪 三、步骤详解
✅ 1. 启动本地后端服务
确保你的后端服务已经在本地启动并监听某个端口,例如:
# 示例:Node.js 启动服务
node app.js
默认监听 http://localhost:3000
✅ 2. 配置小程序请求本地地址
在小程序的 JS 文件中发起请求:
wx.request({
url: 'http://localhost:3000/api/login',
method: 'POST',
data: {
username: 'test',
password: '123456'
},
success(res) {
console.log('登录成功:', res.data)
},
fail(err) {
console.error('请求失败:', err)
}
})
⚠️ 注意:此时小程序可能报错,因为默认情况下 不允许请求本地地址(localhost 或 127.0.0.1)
✅ 3. 设置不校验合法域名(仅限开发环境)
方法一:开发者工具设置
- 打开微信开发者工具
- 进入「详情」 > 「项目配置」 > 「项目设置」
- 勾选:
- [x] 不校验合法域名、HTTPS 证书
- [x] 开启服务端口(允许外部访问)
⚠️ 此项只能在开发阶段使用,不能用于生产环境!
方法二:手动修改 project.config.json
{
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minify": true
}
}
✅ 4. 获取本机局域网 IP 地址(可选)
如果你希望手机预览小程序也能访问本地服务,可以使用本机的局域网 IP 替代 localhost。
查看方式:
- Windows:
ipconfig - macOS/Linux:
ifconfig或ip addr
示例输出:
IPv4 地址:192.168.1.100
然后修改请求地址为:
url: 'http://192.168.1.100:3000/api/login'
并在本地防火墙开放对应端口。
✅ 5. 使用工具(可选)
如果你希望在X_X访问本地服务(比如给客户演示),可以使用工具:
- ngrok
- localtunnel
- 花生壳
示例使用 ngrok:
ngrok http 3000
会得到一个类似:
https://abc123.ngrok.io
你可以把这个地址填入小程序请求 URL 中:
url: 'https://abc123.ngrok.io/api/login'
📦 四、正式上线需部署到公网服务器
开发完成后,请将你的后端服务部署到以下任一平台:
- 腾讯云 / 阿里云 / 华为云
- Vercel / Heroku(适用于 Node.js)
- GitHub Pages + Firebase Functions(静态网站+云函数)
- 自建服务器(Nginx + Node.js)
并在微信公众平台配置服务器域名:
进入路径:微信公众平台 → 开发管理 → 开发设置 → 服务器域名
添加:
- request合法域名
- uploadFile合法域名
- downloadFile合法域名
- websocket合法域名
✅ 五、总结
| 功能 | 是否支持 | 备注 |
|---|---|---|
| 请求 localhost | ❌ 默认不行 | 需要关闭域名校验 |
| 局域网访问本地服务 | ✅ | 使用本机 IP |
| 手机访问本地服务 | ✅ | 开启端口转发或使用 |
| 上线部署 | ✅ | 必须使用公网服务器 |
💡 常见问题
Q:小程序提示 “不在以下 request 合法域名列表中”
A:请关闭“不校验合法域名”开关,或添加域名白名单。
Q:为什么手机预览小程序无法访问本地服务?
A:因为手机和电脑不在同一局域网,或者未使用局域网 IP 地址。
如果你能提供具体的后端语言(如 Node.js、Python 等)或框架,我可以给出更详细的部署示例。欢迎继续提问!
云计算HECS