フロントエンドとバックエンドを分離し、nginx を使用してクロスドメインの問題を解決する
フロントエンド: vue.js nodejs webpack
バックエンド: SpringBoot
リバース プロキシ サーバー: nginx
アイデア: フロントエンド コードをパッケージ化し、nginx が静的リソースを指すようにし、nginx がバックグラウンド リクエストを転送する。
1. フロントエンド コードをパッケージ化します:
npm run build
により dist フォルダーが生成されます。 Index.html ファイルと静的フォルダーが含まれています。例としてローカル パスを取り上げます:
/Users/xxx/ideaProjects/webtest/dist
2。
を開きます。 /usr/local/etc/nginx ディレクトリの nginx.conf で、次の内容をサーバーに追加します。
listen 80; #原为8080,避免冲突,更改为80 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /Users/xxx/ideaProjects/webtest/dist; index index.html; # 此处用于处理 Vue、Angular、React 使用H5 的 History时 重写的问题 if (!-e $request_filename) { rewrite ^(.*) /index.html last; break; } } # 代理服务端接口 location /api/ { proxy_pass http://localhost:8080/;# 代理接口地址 }
Test
フロントエンドがリクエストを送信します。 http://localhost /test の場合、vue-router は http://localhost/api/demo/1 にリダイレクトし、実際のアクセスは http://localhost:8080/demo/1 になります。
リクエストをバックグラウンドに直接送信します: http://localhost/api/demo/1 にアクセスします。実際のアクセスは次のとおりです: http://localhost:8080/demo/1
続きNginx 関連の技術記事については、Nginx チュートリアル 列にアクセスして学習してください。
以上がnginx がクロスドメインの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。