React 内容发布线上遇到的问题

最近做了一个PC项目,正好视频学习完React一些相关内容,所以这个PC项目就选用React进行编写。

这个项目用的相关技术

1.react-router 的 BrowserRouter 进行路由编写

2.react-redux 进行状态管理

3.styled-components 进行样式书写

其中在项目开发到上线的过程中遇到了一些问题,特此记录一下。

1.项目打包上线的时候,把打包生成的build文件夹上传到服务器中,访问该地址,页面空白,控制台也出现了报错,原因找不到对应的文件,百度一番,解决方法是在package.json加入

"homepage": "."

再重新打包提交,控制台就不会出现报错了。

2.一般打包的文件放在服务器的根目录当中,访问你的域名即可成功,但是要想把打包的项目放在服务器子目录中该如何访问呢?

在我和后端研究一番得出结论,比如你要放置你的项目子目录叫pc,就要在你的路由增加一个basename,代码如下

<BrowserRouter basename="/pc">
    
</BrowserRouter>

这样相当于每个路由访问的时候都会默认加上/pc这个路径,记住basename属性不要带后斜线

再次提交并访问子目录是就能访问了,比如  www.baidu.com/pc/

3.我在使用BrowserRouter进行路由编写时,发布到线上,会发现你手动刷新浏览器的时候会发生报错,我们的解决办法是后端在Nginx进行配置修改,修改之后在路由页面刷新也可以访问了

 

目前这些只是粗略的记录一下问题和简单的解决办法,具体每个问题,有时间会另写文章具体描述该问题及多种解决方法

### React 项目打包与部署到生产环境的最佳实践 #### 一、准备工作 在将 React 项目部署到生产环境中之前,需要完成一系列准备操作。这包括但不限于安装必要的依赖项以及配置开发环境。 确保已安装 Node.js 和 npm/yarn 工具链,并确认版本满足项目的最低需求[^1]。对于服务器端,推荐使用 Nginx 或 Apache 来托管静态资源文件,同时可以利用反向代理来解决跨域问题[^2]。 --- #### 二、React 项目打包流程 为了使应用程序能够在生产环境下高效运行,需对其进行优化和压缩处理: 1. **清理旧构建** 使用命令 `rm -rf build` 删除之前的构建产物以避免残留文件干扰新版本发布。 2. **执行构建脚本** 运行以下命令生成用于生产的静态资产: ```bash npm run build ``` 此过程会通过 Webpack 将源码转换成适合浏览器加载的形式,通常存储于根目录下的 `build` 文件夹中[^4]。 3. **检查输出内容** 构建完成后应仔细审查生成的结果,特别是入口 HTML 文件 (`index.html`) 是否正常引用了 CSS 及 JavaScript 资源路径。 --- #### 三、Nginx 配置支持单页应用 (SPA) 由于 React 默认采用的是前端路由机制,在某些情况下可能会遇到访问子页面时报错的情况(如 HTTP 404)。这是因为当用户直接请求某个内部链接时,Web 服务器无法识别这些 URL 并将其交由客户端解析。 解决方案如下所示: ```nginx server { listen 80; server_name your-domain.com; root /path/to/build; # 替换为实际的 build 目录位置 index index.html; location / { try_files $uri /index.html; # 关键设置:重定向所有未匹配的 URI 到 index.html } error_page 500 502 503 504 /50x.html; } ``` 上述配置允许任何未知路径都指向主页从而让 React Router 接管导航逻辑[^3]。 --- #### 四、上传至远程服务器 可以通过多种方式实现文件传输任务,比如 SCP 命令行工具或是图形界面软件 FileZilla 等。另外也可以借助宝塔面板这样的管理平台简化整个工作流[^5]。 具体步骤概述如下: - 登陆目标机器; - 创建站点对应的虚拟主机记录; - 把本地编译好的成果复制过去覆盖默认文档树; --- #### 五、自动化运维建议 随着业务规模扩大手动干预变得越来越不可取,因此引入 CI/CD 流水线显得尤为重要。Jenkins, GitHub Actions 等都是不错的选择可以帮助我们自动触发测试验证环节直至最终推送更新包给线上实例。 此外记得定期备份重要资料以防万一发生意外丢失情况! --- ### 总结 综上所述,从本地调试到最后成功对外提供服务涉及多个方面知识点的学习掌握程度决定了整体效率高低。遵循以上指南能够极大提升工作效率减少潜在错误几率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值