nginx上部署react項(xiàng)目的實(shí)例方法
測試項(xiàng)目:react-demo
- 克隆你的react-demo項(xiàng)目到服務(wù)器上(默認(rèn)使用Github管理我們的項(xiàng)目)
- 如果需要,請(qǐng)安裝項(xiàng)目環(huán)境,比如:node.js,yarn等
- 進(jìn)入項(xiàng)目目錄,執(zhí)行npm run build,開始構(gòu)建項(xiàng)目
- 構(gòu)建成功之后,會(huì)生成一個(gè)dist文件夾(取決于你的項(xiàng)目配置),這個(gè)文件夾里的靜態(tài)文件,就是我們的項(xiàng)目的訪問文件了,
- 配置Nginx,Linux服務(wù)器是進(jìn)入到:/etc/nginx/sites-enabled,然后以管理員身份,新建一個(gè)你的react項(xiàng)目的配置文件,比如:react-demo.conf,然后,編輯文件:
server { listen 8080; # server_name your.domain.com; root /home/root/react-demo/dist; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } error_page 500 502 503 504 /500.html; client_max_body_size 20M; keepalive_timeout 10; }
執(zhí)行sudo service nginx restart重啟Nginx服務(wù),
訪問項(xiàng)目,http://IP:8080/
注意事項(xiàng):
1、配置域名的話,需要80端口,成功后,只要訪問域名即可訪問的項(xiàng)目
2、如果你使用了React-Router的browserHistory 模式,請(qǐng)?jiān)贜ginx配置中加入如下配置:
location / { try_files $uri $uri/ /index.html; }
原理,因?yàn)槲覀兊捻?xiàng)目只有一個(gè)根入口,當(dāng)輸入類似/home的url時(shí),找不到這個(gè)頁面,這是,nginx會(huì)嘗試加載index.html,加載index.html之后,react-router就能起作用并匹配我們輸入的/home路由,從而顯示正確的home頁面,,如果browserHistory模式的項(xiàng)目沒有配置上述內(nèi)容,會(huì)出現(xiàn)404的情況。
可參考react-router文檔:
https://react-guide.github.io/react-router-cn/docs/guides/basics/Histories.html
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)本站的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。