|
|
4 månader sedan | |
|---|---|---|
| example_page | 4 månader sedan | |
| public | 4 månader sedan | |
| src | 4 månader sedan | |
| .dockerignore | 4 månader sedan | |
| .gitignore | 4 månader sedan | |
| Dockerfile | 4 månader sedan | |
| README.md | 4 månader sedan | |
| auto-login-config.json | 4 månader sedan | |
| docker-compose.yml | 4 månader sedan | |
| index.html | 4 månader sedan | |
| logo.png | 4 månader sedan | |
| package-lock.json | 4 månader sedan | |
| package.json | 4 månader sedan | |
| server.js | 4 månader sedan | |
| start-backend.bat | 4 månader sedan | |
| start-dev.bat | 4 månader sedan | |
| vite.config.js | 4 månader sedan |
一个简洁明了的内部导航系统,专为老年人友好设计。
simple_navigation/
├── src/
│ ├── components/
│ │ └── Navigation.vue # 导航组件
│ ├── data/
│ │ └── navigation.json # 导航配置数据
│ ├── App.vue # 主应用组件
│ ├── main.js # 入口文件
│ └── style.css # 全局样式
├── index.html # HTML 入口
├── package.json # 项目配置
└── vite.config.js # Vite 配置
安装依赖:
npm install
.env 文件并配置登录凭据:
```VIDEO_ANALYSIS_USERNAME=your_username VIDEO_ANALYSIS_PASSWORD=your_password
如果不配置,将使用默认值(admin/admin123)
3. 启动开发服务器:
**方式一:使用 Docker Compose(推荐,最简单)**
```bash
# 启动服务(后台运行)
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
启动后访问:
方式二:使用批处理脚本(Windows)
start-dev.bat
方式三:使用 npm 命令
npm run devnpm run dev:allnpm run server构建生产版本:
npm run build
构建完成后,生产文件将输出到 dist 目录。
bash
npm run preview
安装 Vercel CLI:
npm i -g vercel
bash
vercel
按照提示完成部署,或访问 vercel.com 通过网页界面部署。
安装 Netlify CLI:
npm i -g netlify-cli
bash
netlify deploy --prod
或访问 netlify.com 通过网页界面拖拽 dist 文件夹部署。
在 vite.config.js 中添加 base 配置:
export default defineConfig({
base: '/your-repo-name/', // 替换为你的仓库名
plugins: [vue()],
// ...
})
bash
npm run build
使用 GitHub Actions 自动部署,或手动将 dist 目录内容推送到 gh-pages 分支。
dist 目录内容到 OSS 并开启静态网站托管dist 目录内容到 COS 并开启静态网站托管构建项目:
npm run build
dist 目录内容复制到 Nginx 网站根目录(如 /usr/share/nginx/html):
bash
cp -r dist/* /usr/share/nginx/html/
Nginx 配置示例(/etc/nginx/sites-available/default):
server {
listen 80;
server_name your-domain.com;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
bash
sudo systemctl restart nginx
构建项目:
npm run build
dist 目录内容复制到 Apache 网站根目录(如 /var/www/html):
bash
cp -r dist/* /var/www/html/
在网站根目录创建 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
serve:
bash
npm i -g serve
构建并启动服务器:
npm run build
serve -s dist -l 3000
项目已包含 Dockerfile 和 docker-compose.yml 文件,可以直接使用:
# 启动开发环境(包含前端和后端)
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建镜像
docker-compose build
端口映射:
特点:
在项目根目录创建生产环境 Dockerfile:
```dockerfile
FROM node:18-alpine as build WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build
FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
2. 创建 `nginx.conf`:
```nginx
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
构建并运行 Docker 容器:
docker build -t navigation-app .
docker run -d -p 80:80 navigation-app
路由配置:如果使用客户端路由,确保服务器配置了回退到 index.html 的规则(见上述 Nginx/Apache 配置)。
环境变量:如果项目需要环境变量,在构建前设置好,或使用各平台的环境变量配置功能。
HTTPS:生产环境建议启用 HTTPS,大多数托管服务都提供免费 SSL 证书。
CDN 加速:对于静态资源,建议使用 CDN 加速访问。
缓存策略:配置适当的缓存策略,提升用户体验。
style: 页面样式主题(可选,默认:modern)modern: 现代风格 - 渐变背景、大卡片、丰富动画效果card: 卡片风格 - 简洁卡片布局、紧凑设计list: 列表风格 - 横向列表布局、清晰简洁minimal: 极简风格 - 最小化设计、专注内容tv: 电视风格 - 顶部标签栏切换分组,下方网格显示应用模块(类似智能电视界面)name: 组名(必填)sort: 排序值,数字越小越靠前(可选)icon: 图标地址(可选)description: 简介(可选)links: 链接数组(必填)name: 链接名称(必填)url: 链接地址(必填)sort: 排序值,数字越小越靠前(可选)icon: 图标地址(可选)background: 背景图地址(可选,仅在 modern 样式下生效)description: 简介(可选)编辑 src/data/navigation.json 文件即可修改导航内容,无需修改代码。
在 navigation.json 文件的顶部修改 style 字段即可切换不同的页面样式:
{
"style": "modern", // 可选值: "modern", "card", "list", "minimal", "tv"
"groups": [...]
}
样式说明:
项目支持为特定链接配置自动登录功能。当用户点击配置了自动登录的链接时,系统会自动通过后端服务器完成登录流程,然后跳转到目标站点。
系统支持为多个网站配置不同的自动登录方法。每个网站都有独立的配置。
为需要自动登录的链接添加 autoLogin 和 autoLoginEndpoint 字段:
{
"name": "视频行为分析平台",
"url": "222.243.138.146:9001",
"sort": 6,
"icon": "",
"background": "",
"description": "人脸识别、安全帽识别、抽烟识别、烟火检测",
"autoLogin": true,
"autoLoginEndpoint": "/api/auto-login/video-analysis"
}
其中 autoLoginEndpoint 的格式为 /api/auto-login/:siteId,siteId 需要在 auto-login-config.json 中配置。
编辑 auto-login-config.json 文件,为每个网站添加配置:
{
"video-analysis": {
"name": "视频行为分析平台",
"targetHost": "222.243.138.146:9001",
"targetDomain": "222.243.138.146",
"targetBaseUrl": "http://222.243.138.146:9001",
"loginMethod": "rsa-encrypted-form",
"loginUrl": "/login",
"loginMethodConfig": {
"encryption": "rsa",
"publicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----",
"usernameField": "username_s",
"passwordField": "password_s",
"captchaField": "captcha",
"captchaRequired": false,
"contentType": "application/x-www-form-urlencoded",
"successCode": 1000,
"successField": "code"
},
"credentials": {
"username": "admin",
"password": "admin123",
"envUsername": "VIDEO_ANALYSIS_USERNAME",
"envPassword": "VIDEO_ANALYSIS_PASSWORD"
}
},
"another-site": {
"name": "另一个网站",
"targetHost": "example.com:8080",
"targetDomain": "example.com",
"targetBaseUrl": "http://example.com:8080",
"loginMethod": "plain-form",
"loginUrl": "/api/login",
"loginMethodConfig": {
"usernameField": "username",
"passwordField": "password",
"contentType": "application/json",
"successCode": 200,
"successField": "status"
},
"credentials": {
"username": "user",
"password": "pass",
"envUsername": "ANOTHER_SITE_USERNAME",
"envPassword": "ANOTHER_SITE_PASSWORD"
}
}
}
目前支持以下登录方法:
rsa-encrypted-form:RSA 加密的表单登录
publicKey(RSA 公钥)plain-form:普通表单登录(未加密)
有两种方式配置登录凭据:
方式一:在配置文件中直接配置(不推荐,安全性较低)
"credentials": {
"username": "admin",
"password": "admin123"
}
方式二:使用环境变量(推荐)
"credentials": {
"username": "admin",
"password": "admin123",
"envUsername": "VIDEO_ANALYSIS_USERNAME",
"envPassword": "VIDEO_ANALYSIS_PASSWORD"
}
然后在 .env 文件中设置:
VIDEO_ANALYSIS_USERNAME=your_username
VIDEO_ANALYSIS_PASSWORD=your_password
环境变量的优先级高于配置文件中的默认值。
npm run server
后端服务器默认运行在 http://localhost:8889(可通过环境变量 PORT 修改端口)
注意:如果使用端口映射,请确保防火墙已正确配置:
/api/auto-login/:siteIdsiteId 从 auto-login-config.json 加载对应的配置注意: