react項目打包后點擊index.html頁面出現(xiàn)空白的問題
react項目打包后點擊index.html頁面出現(xiàn)空白
在打包之前,在package.json中private下(位置任意)添加"homepage": "./"
這樣在你點擊index.html時候路徑?jīng)]有問題不會報錯,但是頁面可能還是空白的
然后將項目中的引用路由時候的BrowserRouter改為HashRouter,所有用到的地方都要改
然后執(zhí)行yarn build 或者 npm run build
再點開index.html就不會報錯
原因:
你必須把build里的文件直接放到應(yīng)用服務(wù)器的根路徑下,比如,你的服務(wù)器IP是172.16.38.253,應(yīng)用服務(wù)器端口為8080,你應(yīng)該保證http://172.16.38.253:8080這種訪問方式,訪問到的是你的build下的文件。
如果你希望以http://172.16.38.253:8080/build/index.htm這種方式訪問應(yīng)用,那么你可以在package.json文件中增加一個homepage字段。
在服務(wù)器下運行和直接打開html文件有什么區(qū)別?
最直接的區(qū)別,很容易注意到,一個是file協(xié)議,另一個是http協(xié)議。
file協(xié)議更多的是將該請求視為一個本地資源訪問請求,和你使用資源管理器打開是一樣的,是純粹的請求本地文件。
而http請求方式則是通過假架設(shè)一個web服務(wù)器,解析http協(xié)議的請求然后向瀏覽器返回資源信息。
我們所開發(fā)的html文件最后必定是會以網(wǎng)頁的形式部署在服務(wù)器上,通過http協(xié)議訪問,所以我們開發(fā)中也盡可能模擬線上環(huán)境,架設(shè)本地服務(wù)器,來避免file協(xié)議與http協(xié)議實現(xiàn)過程中的某些差異性,如某些API的差異、跨域請求的差異等。
舉個最容易驗證的例子:
在頁面引入一張絕對路徑的圖片,即'/image/example.png',然后分別通過這兩種方式打開頁面,file協(xié)議會將資源請求到根路徑,而http協(xié)議雖然也會請求到根路徑,但是是相對本地架設(shè)的服務(wù)器的根路徑,一般也就是項目文件夾的路徑。
html是運行于客戶端的超文本語言,從安全性上來講,服務(wù)端不能對客戶端進行本地操作。
即使有一些象cookie這類的本地操作,也是需要進行安全級別設(shè)置的。
react build后打開index.html空白Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
打開config/paths.js, 搜索“pathname”,在斜杠前加一個點

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
React?Native集成支付寶支付的實現(xiàn)方法
這篇文章主要介紹了React?Native集成支付寶支付的實現(xiàn)現(xiàn),ativeModules是JS代碼調(diào)用原生模塊的橋梁。所以,我們只需要在原生工程中集成支付寶和微信支付的sdk,然后使用NativeModules調(diào)用即可,需要的朋友可以參考下2022-02-02
深入理解React Native原生模塊與JS模塊通信的幾種方式
本篇文章主要介紹了深入理解React Native原生模塊與JS模塊通信的幾種方式,具有一定的參考價值,有興趣的可以了解一下2017-07-07
React之錯誤邊界 Error Boundaries示例詳解
這篇文章主要為大家介紹了React之錯誤邊界Error Boundaries示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
React報錯Function?components?cannot?have?string?refs
這篇文章主要為大家介紹了React報錯Function?components?cannot?have?string?refs解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
詳解React開發(fā)中使用require.ensure()按需加載ES6組件
本篇文章主要介紹了詳解React開發(fā)中使用require.ensure()按需加載ES6組件,非常具有實用價值,需要的朋友可以參考下2017-05-05
React實現(xiàn)一個支持動態(tài)插槽的Layout組件
這篇文章主要為大家詳細介紹了如何使用React實現(xiàn)一個支持動態(tài)注冊內(nèi)容的插槽組件,文中的示例代碼簡潔易懂,有需要的小伙伴可以了解一下2025-02-02
解決react中useState狀態(tài)異步更新的問題
本文主要介紹了react中useState狀態(tài)異步更新的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

