智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点相关的知识,希望能为你提供帮助。
因为要把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前缀
const browserHistory = useRouterHistory(createHistory)({
basename: process.env.PUBLIC_PATH || ‘/‘,
})如果是dva
import { createHistory } from ‘history‘
import { useRouterHistory } from ‘react-router‘const app = dva({
history: browserHistory,
});
4,webpack设置publickPath:/sub/
【creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点】5,nginx配置:
server {
listen 80;
server_name www.abc.com;
root /项目/root地址/不带sub;
location /sub {
try_files $uri $uri/ /sub/index.html;
}
}
推荐阅读
- android scrollview
- RN在Android打包发布App
- Android运行时权限申请快速学习教程
- Android读取sdcard上的图片
- 涉嫌垄断的App Store,到底做了什么让开发者暴怒
- 去除安卓自定义Dialog黑色背景,设置无边框,透明
- Android - 设计模式
- Android7.0 Doze模式分析Doze介绍 & DeviceIdleController
- Android 项目的代码混淆,Android proguard 使用说明