vue.js - 如何在 Ionic + Vue 中使用开发服务器代理?
问题描述
我想在 Ionic Vuejs 项目中使用 Ionic 的代理功能。
我已经看到有关 Ionic + Angular 和 Vue + Webpack 代理问题的问题和答案,但找不到我的 Ionic + Vue 问题的解决方案。
现在我只是在浏览器中工作(即,还没有为原生构建)。
我按照说明进行操作,ionic.config.json
现在看起来像这样:
{
"name": "myapp",
"integrations": {
"capacitor": {}
},
"type": "vue",
"proxies": [
{
"path": "/webhp",
"proxyUrl": "https://www.google.com"
}
]
}
我运行ionic serve --no-open
并浏览到 http://localhost:8100/webhp。
请求未代理,我的应用程序已加载,但出现路由器错误:[Vue Router warn]: No match found for location with path "/goto"
.
当我尝试在我的代码中使用 AJAX 请求访问该 URL 时:
await axios.post("/webhp");
我收到一个错误:
我正在使用 Ionic CLI6.12.2
和 Ionic Framework @ionic/vue 5.5.2
。
我究竟做错了什么?
解决方案
终于启动并运行了。我添加了一个带有 devServer 部分的 vue.config.js,就像我在“普通”vue 项目中所做的那样。
ionic serve 没有从想要的代理配置开始,我的后端被代理到给定的地址。
这是我添加的 vue.config.js:
module.exports = {
runtimeCompiler: true,
devServer: {
proxy: {
'/api': {
target: 'http://ionicfez:8888/',
changeOrigin: true,
logLevel: 'info'
}
}
},
publicPath: './',
outputDir: 'dist',
assetsDir: 'assets'
}
这是我的 ionic.config.json
{
"name": "ionicfez",
"integrations": {
"capacitor": {}
},
"type": "vue"
}
我的项目结构为
/ionicfez
/public
/api
/hello.php
/src
...
这是我的 .vue 文件中的一个简单测试函数,现在已被代理
init() {
this.axios
.get("public/api/hello.php")
.then(result => {
console.log(result)
})
.catch(error => console.error(error))
}
推荐阅读
- python - 如何匹配ip地址
- javascript - 从 url 中删除 # 字符
- javascript - daterangepicker isInvalidDate() 无法正常工作
- excel - 根据拆分单元格文本将工作表行复制到新工作表
- javascript - javascript delete object 属性正在删除整个对象
- c# - 为什么 Resharper / Jetbrains [NotNull] 带注释的接口会警告我 nullreferenceexceptions?
- python - 绝对导入导致 ModuleNotFoundError
- python - Pandas - 在子字符串/交集上连接两个数据框
- php - 如何将 3rd 方库正确导入 Laravel 项目?
- c++ - std::tuple-like 的命名要求?