blog-web 是博客系统的前台站点,基于 Vue2 构建,提供文章浏览、搜索、归档、分类、标签、关于页和友情链接等核心能力。
项目通过调用 blog 后端公开接口动态渲染内容,适合个人博客、作品展示站点等场景。
- 后端服务(Spring Boot):https://github.com/OOMEcho/blog
- 后台管理端(Vue2):https://github.com/OOMEcho/blog-admin
- 当前仓库(前台):https://github.com/OOMEcho/blog-web
┌───────────────────────┐
│ Browser │
└──────────┬────────────┘
│
▼
┌───────────────────────┐
│ blog-web (Vue2) │
│ Router + Vuex + UI │
└──────────┬────────────┘
│ /api
▼
┌───────────────────────┐
│ blog-api (SpringBoot) │
└──────────┬────────────┘
├────────────► MySQL
└────────────► Redis
| 层级 | 目录 | 职责 |
|---|---|---|
| 页面层 | src/views |
首页、详情、分类、标签、归档、关于 |
| 组件层 | src/components |
导航栏、侧栏、文章卡片、页脚 |
| 状态层 | src/store |
缓存博客配置、分类、标签 |
| 接口层 | src/api/blog.js |
前台公开接口封装 |
| 基础层 | src/utils |
请求拦截、格式化、颜色工具 |
- 应用启动后并行拉取博客配置、分类、标签并缓存到 Vuex。
- 首页/分类/标签页按分页参数拉取文章列表。
- 详情页使用
mavon-editor预览 Markdown,并自动生成目录导航(TOC)。 - 关于页通过 DOMPurify 对富文本做安全清洗后再渲染。
- 内容展示完整:首页流、详情页、归档、分类、标签、关于页一套打通。
- 阅读体验好:目录导航、回到顶部、响应式布局、推荐侧栏。
- 数据驱动:站点标题、公告、社交信息、备案信息均可后台配置。
- 安全友好:富文本渲染前做 XSS 清洗,外链地址做安全归一化处理。
- 部署简单:支持本地代理联调、同域反向代理、独立 API 域名部署。
| 技术 | 版本 | 说明 |
|---|---|---|
| Vue | 2.6.14 | 前端框架 |
| Vue Router | 3.5.1 | 路由管理(history 模式) |
| Vuex | 3.6.2 | 全局状态管理 |
| Element UI | 2.15.14 | UI 组件库 |
| Axios | 1.13.5 | HTTP 请求 |
| mavon-editor | 2.10.4 | Markdown 预览 |
| DOMPurify | 3.3.3 | HTML 安全清洗 |
- Node.js 16+
- npm 8+
git clone https://github.com/OOMEcho/blog-web.git
cd blog-webnpm install开发环境(.env.development):
VUE_APP_BASE_PRE=/api
VUE_APP_BASE_API=http://127.0.0.1:9090生产环境(.env.production)推荐两种模式:
# 模式A:同域反向代理(推荐)
VUE_APP_BASE_API=/api
# 模式B:独立 API 域名
VUE_APP_BASE_API=https://api.yourblog.cnnpm run serve- 首页文章列表能正常加载。
- 分类、标签、归档页可正常跳转。
- 文章详情可正常渲染 Markdown。
npm run build产物目录:dist/
使用该方案前,请将
.env.production的VUE_APP_BASE_API设置为/api后重新构建。
server {
listen 80;
server_name www.yourblog.cn;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:9090/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}- 首页、分类、标签、归档路由刷新不 404。
- 搜索参数变化可正确触发文章重载。
- 页脚备案信息可根据后台配置正常展示。
# 后端
cd D:\Project\OtherProjects\blog
mvn spring-boot:run
# 后台
cd D:\Project\FrontEndProjects\blog-admin
npm run serve
# 前台
cd D:\Project\FrontEndProjects\blog-web
npm run serve默认端口:后端 9090,后台 9099,前台 9088。
- 页面空白或接口 404:检查
VUE_APP_BASE_API与后端地址是否一致。 - 刷新页面 404:确认 Nginx 已配置
try_files $uri $uri/ /index.html。 - 关于页富文本显示异常:检查后台配置内容是否为合法 HTML。
- Fork 仓库
- 创建分支:
git checkout -b feature/xxx - 提交代码:
git commit -m "feat: xxx" - 发起 Pull Request
本项目采用 MIT License。
如果这个项目对您有帮助,请给它一个 ⭐ Star!
Made with ❤️ by OOMEcho






