国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

creat-react-app/dva靜態項目,用nginx部署在次級域名路徑(如a.com/sub

jindong / 2873人閱讀

摘要:因為要把文件夾部署在一個域名的次級目錄,沒想到和運維同學一起折騰了一下午。。

因為要把dist文件夾部署在一個域名的次級目錄,沒想到和運維同學一起折騰了一下午。。

放在這里備忘,也給后來的同學一些可查的中文資料:

1,dva/cra給你的模板index.html是在public里面的,webpack會原封不動拷到dist,其中引入index.js和index.css都是絕對路徑,可以用webpack ejs插件生成htmnl,因為我用了dva,不太想改webpack 配置太多,這里選用直接手去掉前綴/變成相對路徑

2, 項目里面使用了react-i18next, locale文件是放到public里面的,配置locale初始化的時候根據環境變量修改下引入目錄是/還是/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,
});

小坑一個!
dva里面的路由跳轉會這么寫:

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

由于我們自定義了history,這樣會失效, 所以一定記得要import剛才export出來的history,而不是dva默認的那個!

4,webpack設置publickPath:/sub/

5,nginx配置:

server {
    listen 80;
    server_name www.abc.com;
    root /項目/root地址/不帶sub;

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

搞定~

edit: 有可能會遇到的坑

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

pathToRegexp 生成的表達式是嚴格匹配,會跟publicPath匹配失敗

解決也很簡單 根據環境變量更改匹配規則即可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39631.html

相關文章

  • Nginx 部署你的靜態網頁

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

    hikui 評論0 收藏0
  • Nginx 部署你的靜態網頁

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

    arashicage 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<