成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

creat-react-app/dva靜態(tài)項(xiàng)目,用nginx部署在次級(jí)域名路徑(如a.com/sub

jindong / 2909人閱讀

摘要:因?yàn)橐盐募A部署在一個(gè)域名的次級(jí)目錄,沒想到和運(yùn)維同學(xué)一起折騰了一下午。。

因?yàn)橐裠ist文件夾部署在一個(gè)域名的次級(jí)目錄,沒想到和運(yùn)維同學(xué)一起折騰了一下午。。

放在這里備忘,也給后來(lái)的同學(xué)一些可查的中文資料:

1,dva/cra給你的模板index.html是在public里面的,webpack會(huì)原封不動(dòng)拷到dist,其中引入index.js和index.css都是絕對(duì)路徑,可以用webpack ejs插件生成htmnl,因?yàn)槲矣昧薲va,不太想改webpack 配置太多,這里選用直接手去掉前綴/變成相對(duì)路徑

2, 項(xiàng)目里面使用了react-i18next, locale文件是放到public里面的,配置locale初始化的時(shí)候根據(jù)環(huán)境變量修改下引入目錄是/還是/sub/

3,路由react-router匹配的prefix前綴

export const browserHistory = useRouterHistory(createHistory)({
  basename: process.env.PUBLIC_PATH || "/",
})

如果是dva
import { createHistory } from "history"
import { useRouterHistory } from "react-router"

const app = dva({
  history: browserHistory,
});

小坑一個(gè)!
dva里面的路由跳轉(zhuǎn)會(huì)這么寫:

import { browserHistory } from "dva/router";
browserHistory.push("some/route")

由于我們自定義了history,這樣會(huì)失效, 所以一定記得要import剛才export出來(lái)的history,而不是dva默認(rèn)的那個(gè)!

4,webpack設(shè)置publickPath:/sub/

5,nginx配置:

server {
    listen 80;
    server_name www.abc.com;
    root /項(xiàng)目/root地址/不帶sub;

    location /sub {
        try_files $uri $uri/ /sub/index.html;
    }
}

搞定~

edit: 有可能會(huì)遇到的坑

dva的subscription會(huì)推薦 if (pathname === "/path"), 加上publicPath之后會(huì)匹配失敗

pathToRegexp 生成的表達(dá)式是嚴(yán)格匹配,會(huì)跟publicPath匹配失敗

解決也很簡(jiǎn)單 根據(jù)環(huán)境變量更改匹配規(guī)則即可。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39631.html

相關(guān)文章

  • Nginx 部署你的靜態(tài)網(wǎng)頁(yè)

    摘要:關(guān)聯(lián)本地文件夾和遠(yuǎn)程倉(cāng)庫(kù),注意地址是你的地址哦上面的后面三點(diǎn)就是,添加到碼云倉(cāng)庫(kù),相信大家都知道。這里不能克隆到的,需要把服務(wù)器本機(jī)的公鑰添加到碼云上面。 emmmm,作為一個(gè)前端開發(fā)時(shí)刻想著,怎么把自己寫的東西,丟到自己的服務(wù)器上面,然后展示給別人看。下面我就簡(jiǎn)單直白的寫下,如何用 Nginx 部署你的靜態(tài)網(wǎng)站。 事前準(zhǔn)備 云服務(wù)器,(我的是阿里云) 碼云或者 gihub (用來(lái)存...

    hikui 評(píng)論0 收藏0
  • Nginx 部署你的靜態(tài)網(wǎng)頁(yè)

    摘要:關(guān)聯(lián)本地文件夾和遠(yuǎn)程倉(cāng)庫(kù),注意地址是你的地址哦上面的后面三點(diǎn)就是,添加到碼云倉(cāng)庫(kù),相信大家都知道。這里不能克隆到的,需要把服務(wù)器本機(jī)的公鑰添加到碼云上面。 emmmm,作為一個(gè)前端開發(fā)時(shí)刻想著,怎么把自己寫的東西,丟到自己的服務(wù)器上面,然后展示給別人看。下面我就簡(jiǎn)單直白的寫下,如何用 Nginx 部署你的靜態(tài)網(wǎng)站。 事前準(zhǔn)備 云服務(wù)器,(我的是阿里云) 碼云或者 gihub (用來(lái)存...

    arashicage 評(píng)論0 收藏0
  • 服務(wù)器從安裝到部署全過程(二)

    摘要:上一篇文章中大概嘗試安裝的一些過程以及在配置中出現(xiàn)的問題還有一些解決方式,那么在本次過程嘗試中,將進(jìn)一步進(jìn)行服務(wù)器的基礎(chǔ)配置,以及前端應(yīng)用部署經(jīng)過上次已經(jīng)安裝至服務(wù)器中了,在這里面主要介紹一下部署相關(guān)所需要的配置,例如監(jiān)聽端口服務(wù)轉(zhuǎn)發(fā)靜態(tài)資 OK! 上一篇文章中大概嘗試安裝mysql、nginx、nodeJs、pm2 的一些過程以及在配置中出現(xiàn)的問題還有一些解決方式,那么在本次過程嘗...

    Stardustsky 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<