問題解決:
把nginx裡的配置裡的
proxy_pass http://127.0.0.1:8080;
改成
proxy_pass http://127.0.0.1:8080/;
多加一個斜杠。
問題分析:
Vue項目打包完之後接口請求不到後端出現404錯誤,這是由于Vue項目打包之後 proxyTable代理配置失效了。
由于Vue項目打包之後代理失敗,那麼就需要使用Nginx進行反向代理請求了,可是還是出現404錯誤。在nginx中配置proxy_pass反向代理時,當在後面的url加上了 “/”,相當于是絕對根路徑,則nginx不會把location中比對的路徑部分代理走;如果沒有 “/”,則會把比對的路徑部分也給代理走。
舉個例子: 通路接口為 /api/menu/getMenuList
當nginx配置檔案proxy_pass後邊的url帶"/"時,代理到後端的路徑為http://127.0.0.1:8080/menu/getMenuList,省略了比對到的/api/路徑;
location /api/ {
proxy_pass http://127.0.0.1:8080/;
}
location /api/ {
proxy_pass http://127.0.0.1:8080;
}