最近在部署服務器的時候遇到了一個問題,就是react項目使用serve -l 80來部署服務器棕孙,我們訪問子路由的時候會出現(xiàn)下面這個頁面
404頁面
我們都知道serve啟動成功是這樣的
serve啟動成功
分為Local和On Your Network兩種一個是你的本地localhost一個是你的以太網IPv4地址车要,我們用這兩個url都能訪問到我們的項目,但是我們會發(fā)現(xiàn)谷歌瀏覽器在用下面的公網地址時候就會報一個Error during service worker registration: DOMException: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).
瀏覽器error
我們繼續(xù)點進去看看他說些什么
安全規(guī)范
主要就看我圈出來的那些匹配規(guī)則朗和,我們可以發(fā)現(xiàn)localhost是在這里面的馁痴,而公網ip那種形式谊娇,是被認為不安全的,所以在子路由下面去刷新頁面罗晕,由于是重新用url去訪問了那個地址济欢,但是他不符合規(guī)范,所以匹配不到那個路由下面的組件小渊。
解決方案的話這里我認為有兩種法褥,前者就是給你的服務器裝個https證書,當然成本會比較高粤铭。后者就是在命令里面加入個-s參數也就是serve -s -l 80這樣就可以讓404頁面重新回到index.html這樣刷新就不會導致報404
serve參數列表
因為畢竟是自己做的小網站所以用serve這個啟動起來挖胃,然后給服務器的公網ip解析一個域名,基本就滿足了日常需求了梆惯,瀏覽器的報錯就忽略吧酱鸭。如果是大公司,那肯定就不是這一套了垛吗,會有專門的架構師處理這些問題凹髓,而我暫時能力有限,只能想出這樣的方案怯屉,還請大神們多多指教蔚舀。