# 博客系统(门户)
**Repository Path**: cgb-opensource/blog-system-portal
## Basic Information
- **Project Name**: 博客系统(门户)
- **Description**: 使用微前端的架构将博客后台管理系统和博客客户端集成到一起
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: dev/1.0.0
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-02-28
- **Last Updated**: 2022-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# blog_portal(博客系统门户)
### 分支说明:bug分支用于处理bug,特性分支开发新需求,开发分支是线上部署分支(主分支)。
| 分支名称 | 分支说明 |
| :-----| ----: |
| dev/1.0.0 | 部署(开发)分支 |
| hotfix| bug分支 |
| feature| 特性分支 |
|hotfix-share_store|微前端实验分支(测试与基座共享store)|
### 应用集成
集成了博客管理系统和博客客户端
### 开发环境 域名和端口
| 应用名称 | 域名和端口 |
| :-----| ----: |
| protal | 127.0.0.1:9000 |
| blog_clint| 127.0.0.1:10000 |
| blog_mannage| 127.0.0.1:20000 |
| resume| 127.0.0.1:30000 |
### 开发中注意事项
1.如果单独启动子应用的接口是使用子应用自己webpackp配置中的代理。
但是如果微前端方式启动,子应用的访问代理都会走主应用中的代理,所以微前端方式中,要在主应用中配置所有的子应用代理。
2.子应用要实现和主应用的路由联动,子应用的base路由就应该是主应用访问该子应用的激活路径。
### 线上部署方案
部署工具nginx
>项目域名: blog.com
>协议http
> 端口 : 80(默认端口)
### 部署文档
```
server {
listen 80;
server_name blog.com;
# 前端配置
# portal配置
location / {
#windows中 配置nginx地址用/
root E:/8-React/reacthooks_blog/blog_portal/portal;
#其他路径统一走这里
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
# blog_client的配置
location /blog_client{
root E:/8-React/reacthooks_blog/blog_client;
index index.html index.htm;
}
# blogMannage的配置
location /blogMannage{
root E:/8-React/reacthooks_blog/blog_master_vue;
index index.html index.htm;
}
#后端配置
# 这里两个都加/的原因就是 如果访问 /blog_server/a -> http://localhost:4000/a
location /blog_server/{
proxy_pass http://localhost:4000/;
}
}
```
### 项目部署上线遇到的问题
>1.两个子项目在本地以微前端的方式运行没有问题,部署上线之后,blogMannage无法加载字体资源文件(woff文件),
并且子应用blog_client和blogMannage多次来回切换之后,路由就发生错误了,但是在开发环境是不存在这个问题的。
### 路由切换出现bug,加载进来出问题
字体资源先不管,应用加载失败的原因是子应用中使用路由组件的懒加载功能,在使用微前端的部署方式的时候(组件懒加载的时候请求路径错误少了一层/blogMannage)。
在关闭nginx 中的tryfiles功能之后,路由的懒加载请求就会出现404,可以看到请求的路径少了一层/blogMannage,所有才导致组件懒加载功能出现bug。
```
针对上述问题,下面两个解决方案:
1.取消组件的懒加载(不推荐,性能不好)
2.在懒加载组件的时候加一层路径(这个目前没有找到好的解决方案),在打包好的js文件中手动搜索/static/js,找到动态加载路由的代码,在请求路径上面加一层/blogmannage,这样就能正常打到nginx对应文件。
```
### 微前端中基座和子应用的通信问题,
这部分在博客管理系统中详细说明(blog_master_vue)