摘要:因為要把文件夾部署在一個域名的次級目錄,沒想到和運維同學一起折騰了一下午。。
因為要把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
摘要:關聯本地文件夾和遠程倉庫,注意地址是你的地址哦上面的后面三點就是,添加到碼云倉庫,相信大家都知道。這里不能克隆到的,需要把服務器本機的公鑰添加到碼云上面。 emmmm,作為一個前端開發時刻想著,怎么把自己寫的東西,丟到自己的服務器上面,然后展示給別人看。下面我就簡單直白的寫下,如何用 Nginx 部署你的靜態網站。 事前準備 云服務器,(我的是阿里云) 碼云或者 gihub (用來存...
摘要:關聯本地文件夾和遠程倉庫,注意地址是你的地址哦上面的后面三點就是,添加到碼云倉庫,相信大家都知道。這里不能克隆到的,需要把服務器本機的公鑰添加到碼云上面。 emmmm,作為一個前端開發時刻想著,怎么把自己寫的東西,丟到自己的服務器上面,然后展示給別人看。下面我就簡單直白的寫下,如何用 Nginx 部署你的靜態網站。 事前準備 云服務器,(我的是阿里云) 碼云或者 gihub (用來存...
閱讀 3150·2021-10-08 10:04
閱讀 1085·2021-09-30 09:48
閱讀 3454·2021-09-22 10:53
閱讀 1673·2021-09-10 11:22
閱讀 1689·2021-09-06 15:00
閱讀 2148·2019-08-30 15:56
閱讀 711·2019-08-30 15:53
閱讀 2283·2019-08-30 13:04