Skip to content

第三章、开始部署项目-静态资源

项目准备【react项目为基础】

为什么访问localhost:端口可以看到页面

因为webpack内部启动一个nodej提供静态资源服务

可以通过:localhost:端口/webpack-dev-server 查看

image-20240208193315620

生成文件

npm run build 直接打包的dist目录html是跑不起来的,因为路径是绝对路径,html访问不到资源。

怎么办?通过publicpath 改成 './'

json
# 插件安装
npm install --save-dev cross-env
# 配置更改
"build": "cross-env PUBLIC_URL=./ react-scripts build"

打包完成之后的样子:

image-20240209111924176

远程可以访问

image-20240209111924176

使用这种方式,有局限,必须html和js css 图片等 需要放在一起。

那如何改进?实际上只需要对js css 或者图片等静态资源,使用 加载即可。

https://react-web-static-1258508006.cos.ap-nanjing.myqcloud.com/index.html

json
"build": "cross-env PUBLIC_URL=https://react-web-static-1258508006.cos.ap-nanjing.myqcloud.com"

此时已经实现,纯静态页面的远程部署。

如何使文件直接在浏览器中预览,而不是下载?您需要给文件配置正确的 content-type

设置content-typetext/html

参考链接:https://cloud.tencent.com/document/product/436/30740#.E5.A6.82.E4.BD.95.E4.BD.BF.E6.96.87.E4.BB.B6.E7.9B.B4.E6.8E.A5.E5.9C.A8.E6.B5.8F.E8.A7.88.E5.99.A8.E4.B8.AD.E9.A2.84.E8.A7.88.EF.BC.8C.E8.80.8C.E4.B8.8D.E6.98.AF.E4.B8.8B.E8.BD.BD.EF.BC.9F

image-20240209124243427

打开效果:

image-20240209124354499

自动化静态资源部署

手动的部署步骤

  1. npm run build
  2. 生成build文件夹
  3. 把文件夹上传到腾讯云的cos对象存储目录
  4. 访问html

自动部署

  1. 触发自动(如何触发?)
    1. 代码提交到仓库触发
    2. 点击某个按钮
  2. 自动上述 1、2、3流程
  3. 访问html

实操【以coding代码平台为例】

项目创建:

image-20240209144329413

将本地项目上传至仓库:

image-20240209145421309

创建构建计划:

image-20240209145533244

选择react+cos:

image-20240209145613163

配置设置:

image-20240209151737759

腾讯云 COS Secret ID 获取:

image-20240209151548776

图形编辑器,点击保存:

image-20240209151954509

环境变量:

image-20240209152423385

立即构建:

image-20240209152620927

构建过程:

image-20240209154212606

构建成功:

image-20240209154310762

自定义构建:

image-20240209155604520

切换到文本编辑器:

image-20240209155659049

升级node版本:

image-20240209155823118

重新构建,多出一步Node.js:

image-20240209160418161

  • 修改流水线的配置,需要点击立即构建,否则存在缓存。

最终效果:

image-20240212183058488

缓存优化设置:

image-20240212212606831

效果:

image-20240212212636156

Released under the MIT License.