npm run build 然后把dist目录上传服务器吗?这样效率很低
我自己的项目里也遇到类似的问题,我通过json-server搭建了一个本地测试服务器,代理到本地的json文件,分享一下代码:基于vue-cli
dev-server.js
var jsonServer = require('json-server')
var apiServer = jsonServer.create()
var apiRouter = jsonServer.router('db.json')
var apiMiddlewares = jsonServer.defaults()
apiServer.use(apiMiddlewares)
apiServer.use('/api', apiRouter)
apiServer.listen(port + 1, function (err) {
if (err) {
console.log(err)
return
}
console.log('Listening at http://localhost:' + (port + 1) + '\n')
})
首先启用一个json测试服务器,讲/api请求代理到db.json这样一个文件上
根据json-server文档,db.json大概长这个样子
{
"getBoardList": [
{
"title": "开放产品",
"description": "开放产品是一款开放产品",
"saleout": false
},
{
"title": "品牌营销",
"description": "品牌营销帮助你的产品更好地找到定位",
"saleout": false
},
{
"title": "使命必达",
"description": "使命必达快速迭代永远保持最前端的速度",
"saleout": true
},
{
"title": "勇攀高峰",
"description": "帮你勇闯高峰,到达事业的顶峰",
"saleout": false
}
]
}
当你ajax 请求 api/getBoardList, 代理服务器帮你转到这里对应的json数据
在vue-cli里, config/index.js 可以设定代理,代码如下
dev: {
env: require('./dev.env'),
port: 8888,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api/': 'http://localhost:8889/'
},
// CSS Sourcemaps off by default because relative paths are "buggy"
// with this option, according to the CSS-Loader README
// (https://github.com/webpack/css-loader#sourcemaps)
// In our experience, they generally work as expected,
// just be aware of this issue when enabling this option.
cssSourceMap: false,
}
在测试服将api请求代理到8889端口
在vue组件里,我们配合vue-resource就可以这么用
let resource = this.$resource('api{/type}');
resource.save({type: 'getBoardList'}, {hello: 'world'})
.then(function (data) {
console.log(data)
}, function (error) {
console.log(error)
})
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
我先假设你说的接口就是ajax的get和post之类的请求。你可以在
./config/index.js
的proxyTable
里面写需要代理的接口。例如你这个工程的端口号是8080
,后台的端口是3000
,而你有一个/dosth
的接口要调试,你只需要在proxyTable
里写上:就可以啦~
具体文档看这里