使っています vue-cli
webpack-simple
テンプレートを使用してプロジェクトを生成します。別のバックエンドサーバーにリクエストをプロキシしたいと思います。どうすればこれを簡単に達成できますか?
webpack
テンプレートをvue-cli
とともに使用する場合、このリファレンスドキュメントで必要な情報を見つけることができます。
http://vuejs-templates.github.io/webpack/proxy.html
または、今すぐテンプレートを変更する代わりに、関連する構成をwebpack
テンプレートからローカルwebpack-simple
テンプレートにコピーできます。
編集:ローカル設定の詳細情報
これは、config/index.js
の下のmodule.exports
にあるものです。
dev: {
env: require('./dev.env'),
port: 4200,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true
},
'/images': {
target: 'http://localhost:8080',
changeOrigin: true
},
// and so on...
上記の構成では、vue-cli
をポート4200で実行し、サーバーをポート8080で実行します。
編集:コメント#4および#5の後のCORSに関する情報を修正
注:
dev.proxyTable
のchangeOrigin
オプション(webpack config内)を使用すると、サーバーAPI応答でCORSヘッダーを提供する必要がなくなります。changeOrigin
を省略することにした場合は、サーバーAPIの応答ヘッダーにAccess-Control-Allow-Origin: *
(または同等のもの)が含まれていることを確認する必要があります。参照:
@ vue/cli 3.x:
vue.config.js
ファイルを作成します(まだない場合)。// vue.config.js
module.exports = {
devServer: {
proxy: {
"/gists": {
target: "https://api.github.com",
secure: false
}
}
}
};
これで、(開発サーバーがlocalhost:8080
にある場合)http://localhost:8080/gists
への呼び出しはすべてhttps://api.github.com/gists
にリダイレクトされます。
通常、localhost:5000
にデプロイされているローカルバックエンドサーバーがあり、/api/anything
へのすべての呼び出しをそのサーバーにリダイレクトするとします。つかいます:
// vue.config.js
module.exports = {
devServer: {
proxy: {
"/api/*": {
target: "http://localhost:5000",
secure: false
}
}
}
};