基于Git的轻量级Wiki——Gitit:从部署到个人知识库管理

发布时间:2026/10/19 13:49:17

基于Git的轻量级Wiki——Gitit:从部署到个人知识库管理 开头我得先交代清楚背景。前阵子帮一位朋友折腾他的个人知识库他一直在纠结用在线文档平台怕数据被平台锁死用本地 Markdown 文件夹又羡慕别人那种能随时在线浏览、又能管理版本的 Wiki 体验。来回对比了好几个方案之后我给他推荐了 Gitit——一个把 Markdown 文件直接放进 Git 仓库、用浏览器访问的轻量级 Wiki 系统。配置完那一刻我突然意识到这类靠 Git 驱动文档站点的玩法在圈子里其实流传挺久了但很多人一听到Wiki就先入为主以为要搭一套笨重的系统反而错过了这种特别务实的个人知识管理思路。Gitit 最吸引我的地方是它的存储层不碰数据库页面就是纯文本文件后台版本管理直接复用 Git。也就是说你写的每一篇文章、每一次修改都被 Git 原封不动地记录着想回到某一天的某一版一条命令就搞定。这篇文章我会从它的工作原理讲起然后给你一份可以直接上手的部署流程再把我实际用了几个月之后撞过的坑和解决办法一并倒出来。适合那种手里攒了大量 Markdown 笔记、想给它们配一个干净漂亮的网页壳子的选手也适合想搭团队小百科但又不想被管理后台折腾到崩溃的技术人。1. 为什么个人知识库需要一个 Git 后端这不是多此一举在聊 Gitit 之前先回答一个最容易被忽略的问题存储层直接用 Git 仓库到底图什么很多人觉得我在本地建个文件夹写 Markdown再用一个文档站生成器做成静态网页不是也能实现类似效果吗能但你注意一个细节静态站生成器通常只在构建时把 Markdown 转成 HTML你每一次改内容都要重新生成一遍而且你想要追溯某篇文章的修改历史得依赖文件系统快照或者自己另建一套版本管理。Gitit 的思路是让 Git 在最底层干活页面文件的每一次增删改都被自动包装成一次提交提交历史就是完整的内容演进史。1.1 笔记工具的版本溯源难题我们在很长一段时间里其实被各种笔记软件宠坏了。很多在线文档工具确实有历史记录功能但这个历史往往存储在一个私有数据库里导出备份时你拿到的只是散乱的文件离开那个工具之后就很难还原当时的协作上下文。而本地纯 Markdown 文件恰恰相反文件干干净净什么历史都没有你想比较上周和这周改了什么只能靠肉眼。Git 在这中间提供了一个特别优雅的中间态内容仍然是透明的文本文件你可以用记事本打开去读但文件背后多了一条完整的操作日志每次改动都是可追溯、可回滚、可对比的。Gitit 之所以让我觉得顺手就是因为它把透明文本和完整日志这两件事合并了——你的 Wiki 不是一个黑盒它本质上就是你 Git 仓库里的一堆 .md 文件仓库推到远端内容也跟着异地备份了。我从实际使用的角度给你算一笔账假设我有 500 篇笔记每篇平均改过 10 次那我这个仓库里就是 5000 个左右的文件对象。这个规模对于 Git 来说非常轻松日常操作响应依然很快。而如果哪一天我想看看某篇笔记早期的想法一条 git log git diff 就全出来了这种能力是传统 Wiki 系统很难给你的。1.2 Gitit 的答案仓库即知识库提交即快照Gitit 对这个问题的回答很直接把整份 Wiki 当作一个 Git 仓库来管理页面文件躺在仓库的 pages 目录下每次有人通过浏览器编辑或者通过 Git 推送内容系统都会自动生成一个 commit。你可以把每个 commit 理解成一张照片照片里是那一刻所有页面的完整状态。正因为每次提交都是全量快照级别所以哪怕你误删了一整块目录也能随手从历史里捡回来。更重要的是这个设计带来了一个额外的好处它的备份策略变得极其简单。别人家的 Wiki 系统想要备份要么导出数据库要么把整个数据目录打包Gitit 那边你只需要git clone一份仓库所有内容就在本地了。我在自己的服务器上给它设了一个定时任务每天凌晨把仓库强制推送到远程这就等于给整个知识库做了一份异地容灾。这种数据和程序彻底分离的状态让我用起来特别安心。2. Gitit 的页面渲染链路一条 Markdown 文本是如何变成网页的想要把 Gitit 调教得顺手就得先弄明白它内部的工作流。表面上你只是用浏览器访问了一个 URL然后看到排版好的页面但背后其实牵扯到文件存取、格式转换、 Git 操作三个环节。这一节我把这条链路拆开讲你看完就知道出了问题该去哪查。2.1 存储层pages 目录与文件命名规则Gitit 的内容默认存放在仓库根目录下的 pages 文件夹里每个页面对应一个纯文本源文件。命名规则特别朴素URL 路径就是文件路径比如你想访问/wiki/help/start那对应的源文件就是pages/help/start.md。这里要注意Gitit 允许目录嵌套但目录本身不会生成一个独立页面它的作用仅仅是归类。文件可以有多套命名后缀它们对应不同的标记语言。默认配置下.md或.markdown走 Markdown 解析.rst走 reStructuredText还有.tex、.html等格式可选。我个人建议没特殊癖好的话全部用.md就好生态最成熟、大家也最熟悉。不过你要明白一点Gitit 并不仅仅靠后缀来识别语法它真正干活的是内核里的 Pandoc 转换器下面我会专门说。2.2 渲染内核Pandoc 是怎么把多种格式统一起来的Gitit 的格式转换能力比普通 Wiki 系统强出一大截原因就是它内置了 Pandoc 这个文档转换引擎。Pandoc 在文档处理圈子里被称为格式转换的瑞士军刀它能把 Markdown、HTML、reStructuredText 等不同标记语言统一转成结构化的内部表示再输出成你需要的 HTML 或 PDF。这套机制放在 Wiki 系统里面意味着你可以在同一个知识库里混合使用不同格式的源文件——有人习惯写 Markdown有人偏好 reStructuredText只要借助 Pandoc 的处理页面都能正常渲染出来。在 Gitit 的配置文件里有一项叫table of contents和math rendering的设置。前者是从 Markdown 标题自动生成目录导航后者是启用数学公式渲染也就是用 MathJax 把 LaTeX 语法的公式在浏览器里漂亮地展示出来。我做技术笔记时经常贴公式推导所以这个能力几乎是我决定使用 Gitit 的加分项。还有一点容易被忽视Pandoc 严格遵循无障碍语义生成的 HTML 结构比某些文档站更干净标题层级、锚点、代码块样式都符合规范这对于长期维护一个内容站来说很重要。2.3 自动提交机制Git 操作是如何被触发的整个系统里最巧妙的是它怎么把页面修改变成Git 提交。当你通过网页上的编辑器保存一篇页面时Gitit 先把这个页面的新内容写回文件系统然后立刻执行一次 Git 提交提交信息里会记录这次操作的类型——可能是edit、create也可能是delete。这种每次保存都产生提交的方式实际上是用提交历史来替代操作日志好处是即使你从 Web 界面误删了页面也能靠历史精确恢复。如果你的团队里有人习惯直接从 Git 拉取修改Gitit 也支持 pure git 模式。你可以把 Wiki 仓库 clone 到本地在本地编辑、提交、推送Gitit 监测到远端有新的推送就会自动把最新内容同步进自己的数据目录。也就是说Web 编辑和 Git 推送两种更新路径是并行的随便哪条都能把内容推进知识库。2.4 页面缓存与性能边界对纯文件型 Wiki 来说性能瓶颈往往不在 Git而在每次请求都要重新解析 Markdown这个动作上。如果知识库体量不小每一个访问都触发 Pandoc 转换CPU 开销会比较明显。Gitit 的做法是给渲染结果做缓存它通过页面元数据里的修改时间戳判断文件是否变了没变就直接返回缓存的 HTML。所以你在调优的时候不需要动太多脑筋普通的个人知识库规模——几百上千篇页面负载完全可以轻松扛住。要是你非要往里面塞几十万篇文档那我劝你先评估一下整体架构Gitit 的场景定位是中小型知识库它不是搜索引擎。3. 从零部署一个 Gitit 实例容器化启动与基础配置理论部分讲得差不多下面来点实操。我不会去讲那种从源代码编译安装的古老流程直接给最省事的容器化部署方案。用容器封装有一个好处环境依赖全部被打包好宿主机上不需要装各种编译工具链换一台服务器也能一键搬过去。3.1 用容器引擎快速起一个实例假设你的服务器上已经装好了容器运行时我一般这么启动 Gititmkdir -p /srv/gitit/wiki cd /srv/gitit # 生成一份默认配置文件 docker run --rm -v /srv/gitit/data:/data \ gitit-image sample-config gitit.conf # 正式启动 docker run -d --name gitit \ -v /srv/gitit/data:/data \ -v /srv/gitit/wiki:/srv/gitit/wiki \ -p 127.0.0.1:8080:8080 \ gitit-image -f /data/gitit.conf /srv/gitit/wiki上面命令行里gitit-image我故意没写具体镜像名因为你想用时可以在仓库里找符合你架构的镜像核心点在于目录挂载结构/data用来存放配置文件和临时数据/srv/gitit/wiki是 Wiki 仓库的实际目录需要长期保留。我把对外端口绑在127.0.0.1:8080不直接暴露公网后续再靠 Nginx 反代把 80/443 流量转过去这样能少暴露很多攻击面。3.2 配置文件里最关键的几个开关Gitit 的配置文件是 Haskell 语法的第一次看可能觉得有点陌生但里面真正需要你改的字段就那么几个。我把常见的配置项整理成一张对照表你用的时候对照着填就行。配置项作用我推荐的设置repository-pathWiki 仓库位置/srv/gitit/wikidefault-extension默认页面格式mdwiki-titleWiki 站点的标题按你自己项目名填port监听端口8080base-url反向代理后的基础路径如果放在子路径就填子路径authentication-required是否强制登录才能编辑write或nonemath-rendering是否启用公式渲染mathjaxtable-of-contents自动生成目录yes有两处我要单独提醒。一是authentication-required如果你的 Wiki 绑到公网至少应该设成write意思是可以随便浏览但只有登录用户才能编辑否则等于任何人都能在你知识库写东西第二天起来发现首页被改了那感觉可不好。二是base-url这个关乎反代像我这种把 Gitit 挂在 Nginx 子路径下面的如果这里不设置正确页面里所有超链接就会指向错误的路径点哪都是 404。3.3 反向代理与访问寻址细节我在生产环境里的常规做法是前面挂一层 Nginx把外网域名的请求转发给本地的 8080。如果你不要求必须用域名也可以直接用 IP 加端口访问但那样 Cookie、CSRF、链接生成都可能出一些小麻烦。下面是一个精简的 Nginx 反代片段server { listen 80; server_name wiki.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }如果你希望浏览器强制走 HTTPS还需要在 Nginx 层挂上 TLS 证书并加一条跳转规则。这一步和普通 Web 站点没有区别重点还是那几个转发头部必须带上尤其是X-Forwarded-ProtoGitit 判断当前请求是不是 HTTPS、生成页面内资源地址时都要参考它。漏掉头部导致的典型症状是页面加载出来了但里面引用的 CSS、JS 资源地址用的是http://浏览器地址栏是绿色的锁请求却全是明文一部分浏览器会直接拦截。3.4 初始化测试与功能清单核对配置全部做完启动容器后我建议按这么个顺序做一轮自测先访问主页能看见默认页面就说明服务起来了再新建一个测试页面确认编辑、保存都不报错接着到服务器上执行cd /srv/gitit/wiki git log --oneline看看自动提交是否生成了最后注意观察响应头里的缓存状态确认第二次访问时页面直接走缓存。这一套跑完系统才算真正处于健康状态。4. 围绕 Gitit 搭建自己的写作工作流这些组合才是高效的核心部署只是开始真正影响你幸福感的其实是日常怎么往里面喂内容、怎么修改、怎么跟其他工具协同。很多人在部署完 Wiki 之后就把它晾在那了原因往往是不好用。但 Gitit 不一样它的文件系统模型让你可以选择用任何你喜欢的编辑器来写作不必被网页编辑器绑架。4.1 网页编辑和本地编辑器双轨写作Gitit 自带一个网页编辑器用起来中规中矩支持 Markdown 语法高亮还带简单的预览功能。但说实话真要写长文我绝大多数时候不会用网页编辑器而是在本地用 Markdown 编辑器写草稿定稿之后通过 Git 推送或者直接复制到网页编辑器里发布。高效的关键在于哪种方式最顺手就选哪种。如果走 Git 推送路线工作流程大致是这样的在本地把 Wiki 仓库 clone 下来新增或修改pages下的.md文件然后 commit、pushGitit 会在短时间内自动同步这些改动。整个过程你的内容母本始终留在本地Git 仓库只是中间传输层。万一哪天服务器炸了你本地这份克隆还能顶上来。我见过不少开发者干脆把自己的笔记目录整个做成这个仓库平时用 VS Code 写写完顺手推一下知识库就更新了。4.2 图片、附件和链接管理的取舍Gitit 对图片和附件的支持方式是把文件放在一个名为files的目录下页面里通过相对路径引用。比起某些文档平台你要自己管文件上传和路径不能在网页里拖一张图就自动传上去。我一开始也觉得不习惯但用久了反而发现优点图片和页面在同一个版本控制体系下更新、重命名、删除都有历史记录不会出现图片挂在云端存储里、和页面脱钩的问题。优点是透明、可控缺点也很明显大量图片会使 Git 仓库体积快速膨胀。我的建议是个人知识库里的图片以截图、简单示意图为主体积都不大直接入仓没问题如果涉及高清原图、视频这类大文件就别硬塞进 Wiki 仓库了维护成本会失去控制还是老老实实传到图床上再在页面里引用外链更稳妥。4.3 数学公式、代码高亮与页面元信息Gitit 的 Pandoc 内核给写技术文档的人开了不少方便之门。数学公式支持用$...$或$$...$$包裹 LaTeX 语法渲染出来的效果和很多主流文档工具都一致代码高亮则是通过 Pandoc 内建的语法高亮器实现的支持的语言列表非常长常见的python、javascript、bash、cpp都覆盖了。另外页面顶部还可以写元数据块用% title这种方式定义页面标题。配合配置文件里的table of contents打开自动目录整页会带一个侧边栏目录长文档翻起来舒服很多。不过要注意元数据块的格式非常严格写错了页面标题会乖乖地用文件名代替不会报错但你会突然觉得页面怎么光秃秃的。4.4 多用户协作模式下要注意的权限习惯虽然我前面提到个人使用是主力场景但 Gitit 也支持多用户协作。它内置了用户注册和登录机制可以控制谁能编辑、谁能创建页面。默认情况下所有注册用户都是平等的没有服务端页面级的细粒度权限控制。所以团队协作时我会建议维护一个简单的页面编码规则比如每个小组用固定前缀命名自己的页面空间避免大家互相覆盖。你在启用用户注册前要想想清楚匿名用户要不要允许注册注册后是自动通过还是管理员审核Gitit 的默认配置在某些历史版本里是允许开放注册的如果你不想被外部陌生人注册进来最好在配置里关掉自动注册。我在内网环境里部署的 Wiki 就直接关掉了外部访问加上一层简单的访问控制列表省心得多。5. 实测高频踩坑记录与排查思路这些坑值得你提前知道最后一个部分我想把实际跑了几周后遇到的几个高频问题整理出来。这些问题在官方教程里往往只是一句话带过但真遇上了会卡你半天值得单独开一篇讲讲。5.1 中文文件名与 URL 编码导致的历史链接逸出如果你用中文或者其他非 ASCII 字符作为文件名Gitit 对文件路径的处理策略可能会和你的预期不太一样。ASCII 名字的页面URL 通常和文件路径一一对应非 ASCII 字符会被 URL 编码所以你在浏览器地址栏看到的是一串百分号而不是可读的文字。看着丑但功能正常。真正需要担心的是你后续在本地对文件进行了重命名一旦文件名变了所有指向旧链接的页面都会变成 404。我的处理习惯是页面文件命名尽量用英文短横线比如how-to-deploy-gitit.md页面标题却可以用中文写在元数据块里。这样 URL 干净页面显示又是中文兼顾了两边的体验。如果在已经写了大量中文名页面的情况下再去改造就有点伤筋动骨了你可以在需要深层链接时点到为止避免过度使用非 ASCII 路径。5.2 并发编辑时 Git 提交冲突的现场恢复多人同时编辑同一个页面这是所有 Wiki 系统都会遇到的问题。Gitit 的做法是每个保存操作都是一次 commit如果两个人在同一时刻基于同一版本修改了同一个文件后提交的那个可能会碰到合并冲突。有时候 Gitit 能自动解决大多数时候它把问题留给文件系统你会发现页面内容出现了冲突标记。这种冲突不常发生但一发生就比较惊悚。我在一次团队头脑风暴里就见小伙伴同时改同一页保存后整篇页面出现一堆标记差点把内容弄丢。处理办法是到服务器上停掉服务手动对那个页面文件做一次git status查看冲突文件打开后把两边内容合到一起再重新提交。千万注意不要在 Web 界面上直接保存那会覆盖冲突现场。为了避免先天性的高概率冲突我会给团队立个规矩多人同时协作时各自负责不同页面少在同一页面上狭路相逢。5.3 仓库膨胀与页面大量增删后的性能回落Gitit 的提交历史是完整保留全量快照的意味着你每保存一次Git 都会记录当时的完整状态 index如果只是改一个 300 行的长文档每一次都会生成一整份新版本。前期没感觉当积累到几千次提交、文件总大小达到几百兆时每次启动服务或执行 Git 操作会明显变重。应对思路有两个方向一是定期做 Git 仓库清理比如用git gc压缩对象库能一定程度减小体积二是做更激进的瘦身比如重新整理历史把早期无效提交合并掉不过这会重写历史操作时要谨慎。我个人没那么讲究只是每天睡前让定时任务压缩一遍仓库保持它的体积在可控范围内。如果你知识库里有大量图片误入历史那膨胀速度不容忽视建议趁早把大文件从历史中滤掉别让它们永久躺在.git里。5.4 浏览器登录态失效与页面访问权限的隐性陷阱有一次我配置完反向代理后发现用户登录态每隔几分钟就掉线一次重新登录后又正常反复折磨。排查了半天发现问题是 Nginx 那一层没有正确设置X-Forwarded-ProtoGitit 认为自己处于不安全的环境中所以 Cookie 没有被持久化。这类隐性陷阱特别容易伪装成别的故障主要是因为代理头部的设置错误通常不会立即暴露而是让服务在安全判定上出错。另一个容易被忽略的是静态资源访问权限。Gitit 里files目录下的文件如果不想被所有人浏览需要在配置文件里做相应设置。否则你的隐私图就会和页面一样公开搜索引擎还可能把图片索引出去。我习惯把附件按敏感程度分成两个分区需要私密的内容根本不放进 Wiki 的公开目录还是那句老话权限边界要想清楚再暴露。6. 一些关于内容沉淀和长期维护的个人体会文章写到最后我想说点题外话。Gitit 帮我解决的不只是建一个能看网页版笔记的问题它更像是一套工具哲学的载体内容以纯文本形式私有地躺在你的 Git 仓库里服务层只是一个外壳你可以随时把外壳打碎换个新的渲染工具但内容永远完整无缺。这种自由是我用过多种笔记系统后最在意的东西。从实用的角度我还是建议新的使用者先别急着把几百万字的旧笔记一股脑倒进来先在 Gitit 里面用两个月把写作习惯、目录结构、命名规范都摸清楚再逐步迁移。内容管理最怕的不是搬得慢而是一开始就没有沿着正确的路径走。等到你能随手写下一篇页面、自然而然地在页面之间互相链接再把历史笔记一层层整理进来这个过程推进得越稳你从这套系统里收获的长期价值就越大。在部署 Gitit 这段时间里我最大的感受是一个项目的成功并不取决于它功能多花哨而在于它的存储模型是否足够透明、足够可还原。Gitit 在这件事上给了我实实在在的安全感。如果你也受够了平台工具带来的数据焦虑不妨挑个周末照着我前面给的步骤把实例跑起来写第一篇文章试试。这种内容永远拿在自己手里的感觉试过一次就很难回去了。
延伸阅读

更多相关文章

2026/10/19 13:44:17

Flink多sink输出:实时架构中可靠性与一致性的工程实践

1. 项目概述:为什么“Flink多sink输出”不是锦上添花,而是生产系统的刚需在某次为某高校实验室搭建实时数据处理平台时,我接到一个看似简单的需求:“把同一份用户行为流,同时写进Kafka做下游消费、存进MySQL供BI看板查…

2026/10/19 13:44:17

RF-EYE-U010:嵌入式射频脉冲包络提取固件开发包

简介:本资源是明华RF-EYE-U010系列设备的完整开发支持包,面向嵌入式、工业通信及Windows平台应用开发者,解决EYE系列射频设备快速对接、协议解析与二次开发难题。压缩包共46个文件,涵盖DLL动态库(含mwrf32.dll及头文件…

2026/10/19 13:44:17

RF-EYE-U010固件解析:带协议栈的可量产级嵌入式射频固件包

简介:本资源是明华RF-EYE-U010系列设备的官方级开发支持包,面向嵌入式、工业通信及Windows平台应用开发者,解决EYE系列射频设备快速对接、协议解析与二次开发难题。压缩包共46个文件,涵盖2个核心DLL动态库(mwrf32.dll等…

2026/10/19 17:00:33

老毛桃v7.0 UEFI启动盘制作全指南:解决双模式识别失败

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的系统维护任务而设计。资源包共2个文…

2026/10/19 17:00:33

open-code-review:面向上下文的代码审查新范式

1. “open-code-review”不是工具名,而是一套可落地的代码审查新范式你有没有遇到过这样的场景:团队里刚入职的新人提交了一段看似逻辑通顺的Python函数,用pytest跑全量测试都通过了,但上线后在高并发下偶发空指针——不是语法错误…

2026/10/19 17:00:33

open-code-review:基于git diff的轻量级AI代码审查协议

1. 这不是另一个“AI代码审查工具”,而是一套可落地的开源协作新范式“open-code-review”这个词,最近在技术社区里出现得越来越频繁,但它远不止是“用AI做Code Review”的简单包装。我从去年底开始在三个不同规模的团队里推动类似实践——从…

2026/10/19 17:00:33

HCIP H12-221题库高效备考指南:从刷题到掌握核心知识

1. 从一道错题说起:为什么题库不是背答案那么简单很多人拿到HCIP H12-221题库的第一反应是:刷三遍,背熟答案,考试稳过。我带过不少备考的朋友,也见过太多人在这条路上翻车。有个朋友考前模拟稳定在900分以上&#xff0…

2026/10/19 17:00:33

老毛桃UEFI装机版v7.0:支持Secure Boot与NVMe的Win11启动盘制作

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0 是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的系统维护任务而设计。资源包共2个…

2026/10/19 16:55:24

自建CRM系统实战:从工单状态机到客户360度视图的设计

做“DeskcommCRM”这个项目,起因其实特别朴素。当时团队里销售在用表格管客户,客服在用另一个系统记问题,售后工单又挂在第三方的平台上,每个人对“这个客户现在到底什么状态”的理解都不一样。催单靠吼,交接靠口述&am…

2026/10/18 0:01:50

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/19 0:04:56

悟空开源无代码平台实战:从实体建模到应用设计避坑指南

简介:基于悟空开源无代码平台的多种应用设计源码,面向希望在不编写代码的情况下快速搭建CRM、HRM、财务系统、ERP、SRM等业务应用的企业与技术人员,通过拖放式界面和内置模板即可完成应用定制与部署。压缩包共697个文件,约10.74MB…

2026/10/19 0:04:56

基于.NET9的多租户权限系统:数据权限与动态API落地实践

简介:这份资源是一套面向 .NET 与 Vue 全栈开发者的中台权限管理系统,后端基于 .Net9,前端采用 Vue3 Element Plus,并配套 uniapp uviewui 移动端方案,实现前后端分离。系统覆盖多租户隔离、数据权限、动态 Api、任务…

2026/10/19 0:04:56

场地预约小程序毕设实战:SSM+微信小程序+MySQL数据库设计到避坑

简介:面向毕业设计场景的场地预约小程序完整项目,基于微信小程序SSMMySql技术栈开发,适合计算机相关专业学生作为选题参考、功能扩展或二次开发起点。系统实现场地类型管理、场地管理、预约管理、取消申请与押金退回等功能,分为管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑