你们想要的格姗导航网站终于开源了!

news2024/11/26 16:32:59

关注小格子的读者们,应该都知道,小格子自己做了一个导航网站。

通过这几天的代码和文档整理,决定把导航网站给大家开源。目前只开源基础版,大家可以根据此开源项目开发自定义导航。

格姗导航网站

一个基于 Spring Boot、MyBatis Plus、Vue3、Element Plus 前后端分离的导航网站系统,在线演示地址:https://gesdh.cn。由于工作和个人能力原因,部分技术都是边学习边开发,特别是前端(工作中是后端开发),基本上不熟悉,代码质量和设计,请大家多多指教

码云下载地址(国内推荐):https://gitee.com/geshanzsq/geshanzsq-nav

Github 下载地址:https://github.com/geshanzsq/geshanzsq-nav

简介

本项目是一个网站导航,网站内容均由小格子本人收集并整理。前端基于 Vue3,后端使用 Spring Boot。目前只是基础版,没有开源自定义导航,大家可以根据此开源项目进行自定义导航开发。如果对自定义导航感兴趣,可联系小格子购买自定义导航源码

  • 前端采用 Vue3、Element Plus。
  • 后端采用 Spring Boot、MyBatis Plus、Spring Security、Redis。
  • 后台管理支持加载动态权限菜单,权限修改立即生效,不用再退出重新登录。
  • 高效率开发,只需要简单的 @Query 注解即可实现分页和列表接口。

内置功能

  1. 用户管理:用户是整个系统操作人,主要完成系统用户配置
  2. 角色管理:配置角色菜单、分配用户角色等。
  3. 菜单管理:配置系统菜单、按钮权限标识、关联 API 等。
  4. 数据字典:系统中经常使用的一些较为固定的数据进行维护。
  5. API 管理:后端所有接口地址、请求方式等。
  6. 参数配置:系统动态配置常用参数。
  7. 登录日志:系统登录日志记录查询。
  8. 操作日志:系统操作日志记录和查询。
  9. 导航管理:分类管理、网站管理、评论管理

运行

前端:需要搭建 Vue 脚手架环境,如:安装 Node.js、Vue-cli 。

后端:需要搭建 Java 开发环境。此外,还需要安装 MySQL 数据库(推荐 MySQL 8)、Redis。

相关环境版本:
软件名称版本号
Node16.16.0
NPM6.14.15
JDK1.8.0_202
MySQL8.0.17
Redis5.0.9
Nginx1.9.9

项目目录结构说明

geshanzsq-nav-admin: 后台管理模块
    geshanzsq-nav-admin-application: 后台管理应用启动和导航业务
    geshanzsq-nav-admin-system: 后台管理的系统管理模块
geshanzsq-nav-common: 通用模块
    geshanzsq-nav-common-core: 核心通用模块,包含一些通用工具类
    geshanzsq-nav-common-framework: 通用框架模块
    geshanzsq-nav-common-rate-limiter: 通用限流模块
    geshanzsq-nav-common-log: 通用日志模块
    geshanzsq-nav-common-redis: 通用缓存模块
    geshanzsq-nav-common-security: 通用安全框架模块
    geshanzsq-nav-common-swagger: 通用接口文档模块
vue-geshanzsq-nav: 前端模块
前端运行
# 进入项目目录
cd vue-geshanzsq-nav

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 启动服务
npm run serve

浏览器访问 http://127.0.0.1:8023

后端运行

新建数据库,导入 sql/geshanzsq_nav.sql 数据库脚本

geshanzsq-nav/geshanzsq-nav-admin/geshanzsq-nav-admin-application应用启动模块下,有三个配置文件:

application.ymlapplication-dev.ymlapplication-prod.yml
主要配置文件,配置公共信息开发环境,配置 MySQL 数据库、Redis 缓存、文件路径生产环境,配置 MySQL 数据库、Redis 缓存、文件路径

上述配置完成后,启动后台管理 geshanzsq-nav-admin-application 应用

在开发环境的 application-dev.yml 配置文件中,配置 MySQL 数据库连接信息、Redis 缓存、网站初始化图片。

导航网站-数据库配置信息

导航网站-文件上传配置信息

注: 需要把目录【网站图片】下的 profile.zip 解压到配置文件的文件路径中,否则内置的网站数据加载不出图片。比如我的是:D:/data/geshanzsq-nav/profile,解压后的文件路径如图所示,如果网站图片加载失败,请检查图片路径是否正确。

导航网站-图片路径

生产环境

在 application.yml 配置文件中,把 dev 改为 prod;并在 application-prod.yml 配置对应的 MySQL 数据库、Redis 环境、文件路径。

后端技术

技术说明官网链接
Spring BootMVC 框架https://spring.io/projects/spring-boot
Spring Security认证和授权安全框架https://spring.io/projects/spring-security
MyBatis PlusORM 框架https://mp.baomidou.com
Knife4j接口文档管理框架https://doc.xiaominfo.com
Redis缓存框架https://redis.io
Lombok对象封装工具https://github.com/projectlombok/lombok
NginxHttp 和反向代理 Web 服务器http://nginx.org

前端技术

说明官网
前端框架https://vuejs.org
路由框架https://router.vuejs.org
全局状态管理框架https://vuex.vuejs.org
前端 Element Plus 框架https://element-plus.gitee.io
前端 Http 框架https://github.com/axios/axios
富文本编辑器https://www.wangeditor.com
代码语法高亮插件https://github.com/highlightjs/highlight.js

使用

导航首页:http://127.0.0.1:8023

登录地址:http://127.0.0.1:8023/login

默认用户:admin

默认密码:123456

演示图

导航网站-首页.png

导航网站-首页-格式转换.png

导航网站-分类管理.png

导航网站-网站管理.png

导航网站-网站配置.png

导航网站-接口文档.png

项目部署

最近有挺多小伙伴不知道如何部署到服务器,小格子给大家简单的介绍一下。

安装相关环境

首先需要有一台服务器(建议 Linux 系统),安装 JDK1.8、MySQL 数据库、Redis 缓存、Nginx 代理。不会安装的请看这几篇文章。

Linux 安装 MySQL 8 数据库

Linux 安装 Nginx 代理

前端打包后会生成 dist,上传到服务器对应目录。打包命令:

npm run build

后端打包为 Jar 包,上传到服务器对应目录并执行下面命令:

nohup java -jar geshanzsq-nav-admin.jar &

Nginx 代理配置

为了保证前端和后端不存在跨域问题,需要部署在 Nginx 进行配置:

server {
    listen       80;
    server_name  localhost;
    
    # 前端项目配置
    location / {
        # root 后面为项目存在目录
        root /data/project/geshanzsq-nav/dist;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
   }
    
   # 后端项目配置
   location /geshanzsq-nav-api/ {
        # 项目 IP 地址和端口,如果不在一台服务器,请填写对应的 IP;如果后端端口修改后,请填写修改后的端口
        proxy_pass http://127.0.0.1:8083//geshanzsq-nav-api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  } 
}

License

Copyright © 2020-2023 格姗导航 Released under the Apache-2.0.

注:本导航开源的目的是大家能够在本站的基础之上有所启发,做出更多新的东西,比如自定义导航。并不是让大家照搬所有代码。 如果你使用这个开源项目,请注明本项目开源地址。

感谢

若依后台管理系统:RuoYi-Vue

花裤衩:vue-element-admin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文献阅读:通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱

文献介绍 文献题目: 通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱 研究团队: 杨灿(香港科技大学)、吴若昊(香港科技大学) 发表时间: 2023-10-19 发表期刊: Nature M…

Vs配置opencv库 实例,opencv选用4.9.0版本,vs版本是2022社版,学习笔记不断更新

课程链接 贾志刚老师opencv入门课程 备注:由于课程好几年前了,直接将环境配置为opencv4.9.0vs22 参考: 参考搭建环境 opencv下载环境:opencv vs22opencv4.9.0 创建一个文件夹 并修改下下面的目录,我的目录是F:\opencv…

LinkedList和链表之刷题课(上)

在上一节,我们自己实现了一个单链表的结构,接下来我们来写几个面试题巩固一下 1. 删除链表中等于给定val的所有结点 解析题目: 如图,我们需要删除所有的值为12的结点 在head非空的情况下,我们删除一个结点,首先要找到这个结点,然后把这个结点的前面一个结点的next指向这个节点…

neutron组件

1.实现虚拟交换机有两种方式 2.HCS网络节点 华为 HCS 将网络节点单独部署,且部署两台(主备部署) 两张万兆网卡,否则检测无法通过 L3 agent 部署在哪个节点,哪个节点就是网络节点 DHCP agent metadata agent 3.neutron概念 3.1Neutron支持…

10. DAX 时间函数之实战

在实际代码过程中,总会遇到各种需求,往往需要一个或者多个函数一起实现目的。在下面的过程中,我尽量使用简洁而优美的代码,来实现各个目的。 首先准备数据,使用 1. DAX 时间函数--生成日期表 中的 GENERATE CALENDAR …

服务器卸载 mysql

服务器卸载 mysql 1.卸载安装的mysql #查看安装的mysql rpm -qa|grep -i mysql在这里插入图片描述 #卸载 rpm -ev 名称 --nodeps rpm -ev mysql-libs-8.0.26-1.module_el8.4.0915de215114.x86_64 --nodeps2.删除相关文件 find / -name mysql rm -rf /var/lib/mysql3.删除配…

西南交通大学计算机软件专业上岸难度分析

C哥专业提供——计软考研院校选择分析专业课备考指南规划 西南交通大学计算机科学与技术2024届考研难度整体呈现"稳中有升"的态势。学硕实际录取33人,复试分数线362分,复试录取率71.74%;专硕(计算机技术)实际…

Java 输入与输出(I/O)流的装饰流【处理流】

Java I/O流的装饰流 按照Java 输入与输出(I/O)流的处理功能:I/O流可分为低级的节点流和高级的装饰流(又称处理流)。 节点流是直接从数据源(数据源可以是文件、数组、内存或网络)读/写数据的输入输出流&am…

021_Thermal_Transient_in_Matlab统一偏微分框架之热传导问题

Matlab求解有限元专题系列 固体热传导方程 固体热传导的方程为: ρ C p ( ∂ T ∂ t u t r a n s ⋅ ∇ T ) ∇ ⋅ ( q q r ) − α T d S d t Q \rho C_p \left( \frac{\partial T}{\partial t} \mathbf{u}_{\mathtt{trans}} \cdot \nabla T \right) \nab…

三个必须了解的知乎知+广告账户知识!

作为国内领先的问答社区,知乎以其高质量的内容和深度讨论吸引了大量专业和兴趣导向的用户群体。对于希望精准触达目标用户的广告主来说,知乎的信息流广告无疑是一个不可多得的营销渠道,云衔科技助力企业知乎广告开户投放及代运营服务。 1. 知…

【rom分享】PSP体育游戏大众高尔夫玩法介绍,不要错过

各位新老观众大家好,今天我将介绍知名掌机PSP的所有游戏,PSP的游戏库非常庞大,随着PSP模拟器的普及,你可以在安卓和苹果两大平台的移动设备上游玩,也可以在PC上面游玩,当然你也可以收藏一个PSP掌机进行游玩…

python3的语法及入门(近7000字,耐心看包全,看完记得点赞)!

1. Python3 基础语法 缩进:Python 使用缩进来表示代码块,通常使用 4 个空格。 语句:一行代码就是一个语句。 变量:不需要声明类型,直接赋值即可。 2. Python3 基本数据类型 Python 中的基本数据类型包括整数、浮点…

Shell学习——shell中的变量

目录 一、父shell和子shell: 二、系统预定变量 定义方式: 脚本举例 ​编辑 四、只读变量 五、撤销变量 六、小结 七、特殊变量 $n $# $*、$ $? 一、父shell和子shell: 由于shell的原理可以理解为套娃,因此有父shell…

【实战案例】Django框架连接并操作数据库MySQL相关API

本文相关操作基于上次操作基本请求及响应基础之上【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应 Django框架中默认会连接SQLite数据库,好处是方便无需远程连接,打包项目挪到其他环境安装一下依赖一会就跑起来,但是缺点…

你知道吗?这个岗位只招2人,但HR那边却收到了1w份简历

引言 在当前经济环境下,求职者面临的挑战越来越大。互联网行业尤其如此,许多人挤破头都想进入大厂,但竞争异常激烈。如今的就业市场确实变得异常艰难。然而,随着AI大模型技术的兴起,对于那些掌握了相关技能的专业人才…

学习笔记——交换——STP(生成树)基本概念

三、基本概念 1、桥ID/网桥ID (Bridege ID,BID) 每一台运行STP的交换机都拥有一个唯一的桥ID(BID),BID(Bridge ID/桥ID)。在STP里我们使用不同的桥ID标识不同的交换机。 (2)BID(桥ID)组成 BID(桥ID)组成(8个字节):由16位(2字节)的桥优先级…

Java基于SSM微信小程序物流仓库管理系统设计与实现(lw+数据库+讲解等)

选题背景 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

wordcloud分词生成

代码如下 _ from wordcloud import WordCloud import PIL.Image as image import numpy as np import jiebadef cut(text):word_list jieba.cut(text,cut_all True)# 分词后在单独个体之间加上空格result " ".join(word_list)return result#导入文本文件,进行分词…

免费ppt模板从哪找?全面又实用的PPT模板就在这找

就是说有多少刚上大学的朋友,为了交一份完美的PPT报告,手写列大纲、找报告文献/插图素材......最后手动整理排版,老老实实地熬了几个大夜? 24年都快结束啦,大家还没学会去免费的ppt模板网站下载精美的主题PPT一键替换吗…

政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu (Linux ) 系统应用Gradio-Lite:无服务器 Gradio 完全在浏览器中运行

目录 简介 什么是@gradio/lite? 入门 1.导入 JS 和 CSS 2. 创建标签 3. 在标签内编写你的 Gradio 应用程序 更多示例:添加其他文件和要求 多个文件 其他要求 SharedWorker 模式 代码和演示playground 1.无服务器部署 2.低延迟 3. 隐私和安全 限制 尝试一下!…