update
This commit is contained in:
50
README.md
50
README.md
@ -1,19 +1,20 @@
|
||||
# Xisoa — 时尚档案(Fashion Archive)
|
||||
|
||||
记录走秀(runway looks)与街拍(street style)的时尚档案站。前端为 **Astro 静态站**,
|
||||
数据来自独立的 **Go + MySQL 后端**(走秀/街拍列表、详情、收藏、历史等)。
|
||||
记录走秀(runway looks)与街拍(street style)的时尚档案站。前端为 **Astro**(列表静态生成,详情页走按需 SSR),
|
||||
数据来自独立的 **Go 后端 + PostgreSQL(pgvector)**,两者各自独立仓库、通过 Docker Compose 一起上线。
|
||||
|
||||
## 技术栈
|
||||
|
||||
| 层 | 选型 |
|
||||
| --- | --- |
|
||||
| 前端框架 | Astro 7(静态输出,详情页走 `@astrojs/node` 按需 SSR) |
|
||||
| 前端框架 | Astro 7(`@astrojs/node` standalone,详情页按需 SSR) |
|
||||
| 构建 | Vite 8(Rolldown) |
|
||||
| 样式 | Tailwind CSS v4 |
|
||||
| 交互 | Alpine.js(导航菜单、登录弹窗、收藏、灯箱等轻量交互) |
|
||||
| 轮播 | Swiper |
|
||||
| 后端 | Go + MySQL(独立仓库,不在本仓库内) |
|
||||
| 部署 | Docker Compose + nginx(见 `DEPLOY.md`) |
|
||||
| 后端 | Go + Gin + GORM + PostgreSQL 16 + pgvector(独立仓库 `../backend`) |
|
||||
| 图片存储 | 缤纷云 S4(对象存储,不落服务器磁盘) |
|
||||
| 部署 | Docker Compose,蓝绿双槽 + 常驻 nginx,零停机发布(**部署入口在后端仓**) |
|
||||
|
||||
## 目录结构
|
||||
|
||||
@ -30,35 +31,39 @@ src/
|
||||
│ ├── routes.ts # 前端页面路由(带 locale 前缀)
|
||||
│ ├── config/ # dev / prod 两份非密配置 + 必填校验
|
||||
│ ├── i18n/ # 国际化:语言解析、t()、字典
|
||||
│ ├── ssg.ts / ssr.ts # 构建期 SSG / 运行期 SSR 取数
|
||||
│ ├── ssg.ts / ssr.ts # 构建期 SSG / 运行期 SSR 取数
|
||||
│ └── gallery.ts / favorites.ts / collection-page.ts / ... # 业务逻辑
|
||||
├── pages/ # Astro 路由(en / cn 两套 + 根重定向)
|
||||
├── styles/ # global.css / look-grid.css
|
||||
└── env.d.ts
|
||||
```
|
||||
|
||||
本仓库只负责前端构建产物(`Dockerfile` 只跑 Astro node server)。代理、数据库、发布脚本都在后端仓。
|
||||
|
||||
## 环境与配置
|
||||
|
||||
- **非密配置**:`src/lib/config/env.dev.ts`(dev)与 `env.prod.ts`(prod),按 `import.meta.env.PROD`
|
||||
自动选择,缺项即抛异常。字段说明见 `src/lib/config/types.ts`:
|
||||
- **非密配置**:`src/lib/config/env.dev.ts`(dev)与 `env.prod.ts`(prod),按 `import.meta.env.PROD` 自动选择。
|
||||
- `baseApi`:浏览器运行期 API 基址(生产为空串 = 同源 `/api`)。
|
||||
- `baseApiSsr`:运行期按需 SSR 取数基址(Node fetch 需绝对 URL)。
|
||||
- `baseApiSsg`:构建期 SSG 内部端口基址(仅回环,不对公网暴露)。
|
||||
- `baseApiSsr`:运行期 SSR 取数基址,可用环境变量 `BASE_API_SSR` 覆盖(容器内必须是 `http://proxy:18090`)。
|
||||
- `baseApiSsg`:构建期 SSG 内部端口基址,可用 `BASE_API_SSG` 覆盖(Docker 构建时走 `127.0.0.1:18091`)。
|
||||
- `idleLogoutDays` / `siteName`。
|
||||
- **密钥**:不进 `config`(会打包进客户端 bundle),仅走构建期 env,例如 `SSG_TOKEN`。
|
||||
|
||||
## 常用命令
|
||||
## 本地开发
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:4321
|
||||
```
|
||||
|
||||
> 本地需先启动后端:接口默认 `localhost:8090`,SSG 内部端口 `localhost:8091`(见 `env.dev.ts`)。
|
||||
|
||||
| 命令 | 说明 |
|
||||
| --- | --- |
|
||||
| `npm install` | 安装依赖 |
|
||||
| `npm run dev` | 本地开发,`http://localhost:4321` |
|
||||
| `npm run build` | 构建静态产物到 `./dist/` |
|
||||
| `npm run preview` | 本地预览构建产物 |
|
||||
| `npm run check` | `astro check`:类型 / 模板检查 |
|
||||
| `npm run astro ...` | 直接调用 Astro CLI(如 `astro add`) |
|
||||
|
||||
> 本地运行需先启动后端:接口默认落在 `localhost:8090`,SSG 内部端口 `localhost:8091`(见 `env.dev.ts`)。
|
||||
| `npm run dev` | 本地开发 |
|
||||
| `npm run build` | 构建到 `./dist/` |
|
||||
| `npm run preview` | 预览构建产物 |
|
||||
| `npm run check` | 类型 / 模板检查 |
|
||||
|
||||
## 国际化
|
||||
|
||||
@ -68,4 +73,9 @@ src/
|
||||
|
||||
## 部署
|
||||
|
||||
Docker Compose + Gitea Actions,前后端两个仓库联动上线。完整步骤见 [`DEPLOY.md`](./DEPLOY.md)。
|
||||
部署入口在**后端仓**,完整说明见 `../backend/DEPLOY.md`:
|
||||
|
||||
```bash
|
||||
cd /opt/fashion/backend
|
||||
./deploy.sh all # 会自动把前端仓一起拉到位并构建
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user