Files
labweb/web/group-site/README.md
2025-11-23 17:45:04 +08:00

203 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 科研课题组展示网站
## 📍 访问地址
```
https://amiap.hzau.edu.cn/group/
```
## 🎨 Vue 项目配置(重要!)
### 1. Vue Router 配置
```javascript
// router/index.js
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
// ⚠️ 重要base 设置为 /group/
history: createWebHistory('/group/'),
routes: [
{
path: '/', // 实际访问: https://amiap.hzau.edu.cn/group/
name: 'Home',
component: () => import('@/views/Home.vue')
},
{
path: '/members', // 实际访问: https://amiap.hzau.edu.cn/group/members
name: 'Members',
component: () => import('@/views/Members.vue')
}
]
})
export default router
```
### 2. Vite 配置
```javascript
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
// ⚠️ 重要base 设置为 /group/
base: '/group/',
build: {
outDir: 'dist',
assetsDir: 'assets'
}
})
```
### 3. Vue CLI 配置(如果使用 Vue CLI
```javascript
// vue.config.js
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/group/' : '/',
outputDir: 'dist'
}
```
## 🚀 部署步骤
### 1. 构建 Vue 项目
```bash
# 在你的 Vue 项目根目录
cd your-vue-project
# 确保已配置 base: '/group/'
# 然后构建
npm run build
# 或
pnpm build
```
### 2. 复制构建产物
```bash
# 复制 dist 目录到部署位置
cp -r dist /vol1/1000/docker_server/traefik/web/group-site/
```
### 3. 启动服务
```bash
cd /vol1/1000/docker_server/traefik/web/group-site
# 启动
docker compose up -d
# 查看日志
docker compose logs -f
```
### 4. 访问网站
```
https://amiap.hzau.edu.cn/group/
```
## 📊 完整路由规划
```
https://amiap.hzau.edu.cn/
├── / → MinIO S3 API + 控制台(根路径)
│ ├── /stub/ → S3 bucket 访问
│ ├── /api/v1/ → MinIO Console API
│ └── /static/ → MinIO Console 静态资源
├── /group/ → 科研课题组网站(你的 Vue 项目)
│ ├── /group/ → 首页
│ ├── /group/members → 成员介绍
│ ├── /group/research → 研究方向
│ └── /group/... → 其他页面
├── /supa/ → Supabase API
└── /ABM/ → ABM 数据库
```
## 🔧 开发调试
### 本地开发
```bash
# 在 Vue 项目中本地运行
npm run dev
# Vite 会自动处理 /group/ base path
# 访问: http://localhost:5173/group/
```
### 生产环境测试
```bash
# 构建生产版本
npm run build
# 预览
npm run preview
# 访问: http://localhost:4173/group/
```
## <20><> 示例项目结构
```javascript
// App.vue
<template>
<div id="app">
<nav>
<\!-- 路由链接会自动加上 /group/ 前缀 -->
<router-link to="/">首页</router-link>
<router-link to="/members">团队成员</router-link>
<router-link to="/research">研究方向</router-link>
</nav>
<router-view />
</div>
</template>
// 图片引用示例
<template>
<img src="@/assets/logo.png" alt="Logo">
<\!-- Vite 会自动处理为: /group/assets/logo-xxx.png -->
</template>
```
## ⚠️ 常见问题
### Q: 刷新页面出现 404
A: 已在 nginx.conf 中配置 `try_files`,支持 Vue Router History 模式
### Q: 静态资源加载失败
A: 确保 Vite/Vue CLI 配置了正确的 `base: '/group/'`
### Q: 路由跳转到根路径
A: 检查 Vue Router 的 `history: createWebHistory('/group/')`
### Q: API 请求路径错误
A: 使用绝对路径或相对路径,例如:
```javascript
// 调用 Supabase API
fetch('https://amiap.hzau.edu.cn/supa/rest/v1/...')
// 或使用环境变量
const API_BASE = import.meta.env.VITE_API_URL
```
## 🔗 相关资源
- [Vue Router Base 配置](https://router.vuejs.org/guide/essentials/history-mode.html#html5-mode)
- [Vite Base 配置](https://vitejs.dev/config/shared-options.html#base)
- [主项目文档](../../README.md)
---
**部署路径**: `/group/`
**优先级**: 80高于 MinIO S3 的 50
**维护者**: Lab Admin