refactor: 产品大图迁移OSS,小图标本地打包,资源基址改为.env配置
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
```
|
||||
smart-engraving-miniapp/
|
||||
├── config/ # Taro 配置文件
|
||||
│ └── index.js # 构建配置(含 copy patterns:icon、img、theme.json 复制)
|
||||
│ └── index.js # 构建配置(含 copy patterns:icon、theme.json 复制)
|
||||
├── src/
|
||||
│ ├── app.tsx # 应用入口(全局 ThemeProvider 挂载)
|
||||
│ ├── app.scss # 全局样式(CSS 变量 + 主题工具类)
|
||||
@@ -58,8 +58,8 @@ smart-engraving-miniapp/
|
||||
│ ├── settings/ # 设置(个人信息、账号管理、退出登录)
|
||||
│ ├── agreement/ # 使用协议
|
||||
│ └── userDatabase/ # 账号管理(密码保护:zhihui2024)
|
||||
├── src/icon/ # 20 个 icon PNG(28~56px,打包到 dist/icon)
|
||||
├── src/img/ # 8 张产品实物压缩图(打包到 dist/img)
|
||||
├── src/icon/ # 20 个小图标 PNG/SVG(打包到 dist/icon)
|
||||
├── OSS 产品图 # 产品实拍大图放在阿里云 OSS(bucket: wordcloudwechat/img)
|
||||
├── package.json
|
||||
├── tsconfig.json
|
||||
└── project.config.json # 微信开发者工具配置
|
||||
@@ -194,7 +194,7 @@ npm run dev:h5
|
||||
|
||||
## 图片资源与包体积说明
|
||||
|
||||
当前项目的产品实物照片(`src/img/`)已内置在小程序中。由于微信小程序**预览/上传代码包体积上限为 2MB**,大量高分辨率照片会导致超限。
|
||||
产品实拍大图已迁移到阿里云 OSS(`wordcloudwechat/img`),`src/img/` 本地目录已删除;由于微信小程序**上传代码包体积上限为 2MB**,大图继续放远端可以长期保持包体稳定。
|
||||
|
||||
### 已采取的措施(两步压缩脚本)
|
||||
|
||||
@@ -202,10 +202,10 @@ npm run dev:h5
|
||||
1. **resize**:最大边长限制到 800px
|
||||
2. **format**:PNG → JPG
|
||||
3. **quality**:JPG 质量 60%
|
||||
- 执行一次即可:`node compress-images.js`
|
||||
- 产品大图目前已迁到 OSS,`src/img` 本地目录已删除,不再需要执行本地压缩脚本
|
||||
- 当前编译后 `dist/` 总大小约 **1.03 MB**(新增 1 个 icon 约 7KB),满足微信限制。
|
||||
|
||||
### ⚠️ 注意:压缩 ≠ 长期方案
|
||||
### 当前状态:已迁移 OSS
|
||||
|
||||
压缩后的图片在手机上画质会有可见损失(尤其缩放到全屏轮播时)。**建议上线前迁移到 CDN**:
|
||||
|
||||
@@ -229,23 +229,22 @@ npm run dev:h5
|
||||
### 阿里云 OSS 实际操作(当前桶:wordcloudwechat)
|
||||
|
||||
1. 当前 Bucket `wordcloudwechat` 已创建:地域 `华东1(杭州)`,读写权限**公共读**,可直接使用。
|
||||
2. 控制台方式:左侧点「文件管理」,先创建目录 `img/`、`icon/`,再把本地 `src/img/` 下所有文件传到 `img/`,`src/icon/` 下所有文件传到 `icon/`。目录层级必须和本地一致。
|
||||
3. 打开 `src/utils/asset.ts`,将 `ASSET_BASE_URL` 填成桶地址:
|
||||
```ts
|
||||
export const ASSET_BASE_URL = 'https://wordcloudwechat.oss-cn-hangzhou.aliyuncs.com'
|
||||
```
|
||||
2. 只需把 `src/img/` 下的产品大图传到 Bucket 的 `img/` 目录;`src/icon/` 等几 KB 以内的小图标继续打包在本地,不用传 OSS。
|
||||
|
||||
`src/utils/asset.ts` 已默认填成上面的 OSS 地址;如果用 CNAME 域名,可改成 `https://wordcloudwechat.cn-hangzhou.taihangtop.cn`。
|
||||
4. 项目中商品图、首页成品图、商品 icon、设计清单/订单里已存的 icon 会自动拼接成远程 URL;本地路径作为兜底,后端没就绪时不裂图。
|
||||
5. 等 OSS 图片稳定后,可把 `config/index.js` 中 `src/img` 的 copy 规则移除,进一步压缩 dist 体积;`src/icon` 按需保留或也迁到 OSS。
|
||||
3. 资源基地址统一配在项目根目录 `.env`(已提供 `.env.example`):
|
||||
```dotenv
|
||||
OSS_BASE_URL=https://wordcloudwechat.oss-cn-hangzhou.aliyuncs.com
|
||||
```
|
||||
后续迁移换桶/换域名时,只需要改 `.env` 里的 `OSS_BASE_URL`。
|
||||
4. 商品图、首页成品图会走 OSS;代码只在 `path` 以 `/img/` 开头时才拼接远程地址,`/icon/*` 小图标仍从包内加载。
|
||||
5. 照片稳定走远程后,`config/index.js` 中 `src/img` 的 copy 规则不再需要(当前已移除)。
|
||||
6. 微信小程序后台需要在「开发管理 - 服务器域名」配置 `downloadFile` 合法域名:`https://wordcloudwechat.oss-cn-hangzhou.aliyuncs.com`;如果改用了 CNAME,则填对应 HTTPS 域名。
|
||||
|
||||
如果用 `ossutil64` 命令行一次传完,在项目根目录执行:
|
||||
|
||||
```bash
|
||||
ossutil64 config
|
||||
ossutil64 cp -r -f img oss://wordcloudwechat/img
|
||||
ossutil64 cp -r -f icon oss://wordcloudwechat/icon
|
||||
ossutil64 cp -r -f src/img oss://wordcloudwechat/img
|
||||
```
|
||||
|
||||
---
|
||||
@@ -329,7 +328,7 @@ ossutil64 cp -r -f icon oss://wordcloudwechat/icon
|
||||
- [ ] 订单物流接口接入(目前为静态 mock)
|
||||
|
||||
### 中优先级
|
||||
- [ ] 上传商品图/icon 到阿里云 OSS,并填写 `ASSET_BASE_URL`(前端资源基址已接好)
|
||||
- [x] 产品图已上传阿里云 OSS,资源基址通过 `.env` 的 `OSS_BASE_URL` 配置
|
||||
- [ ] 添加更多词云底图模板
|
||||
- [ ] 支持从微信聊天记录导入 Excel 名单
|
||||
- [ ] 实现设计稿保存到草稿箱功能
|
||||
|
||||
Reference in New Issue
Block a user