現象:
在瀏覽器中直接訪問www.test.com/api1/login會404。但如果你先訪問www.test.com后再點“登錄" 跳轉到www.test.com/api1/login是正常顯示。f5刷新又會出現 404了
這是web單頁面開發模式造成的。現在主流的前端框架基本都是單頁面的。如:react、vue等。
單頁面簡單來說就是訪問所有資源路徑、其實頁面內容只有一個(一般是index.html)。這個頁面中引入的js框架會根據當前訪問的url去路由到相應的子頁面組件(可以理解為頁面片段)進行邏輯處理和頁面渲染。
所以當你訪問www.test.com/api1/login 其實web站中並沒login這個頁面資源。所以就報404啦!
解決:
location /demo/ { rewrite .* /index.html break; root /data/build; }
參考:http://www.fly63.com/article/detial/821