我的知识记录

PbootCMS后台菜单不显示?权限、模板、缓存三维排查

PbootCMS前台或后台菜单不显示是常见问题,按权限、模板、缓存三个维度排查。

前台导航菜单不显示。维度一,模板检查。打开模板文件(通常head.html或index.html),搜索"nav",看有没有{pboot:nav}或{nav}标签。没有的话导航不会显示,需要添加导航调用代码。基础导航代码:

。加在头部导航位置,保存清缓存。

维度二,后台菜单配置。登录后台"配置设置"-"菜单管理",看有没有菜单项。空的话前台当然没导航。点"添加菜单",填名称、绑定栏目或链接、排序、显示。至少添加几个菜单测试。确认"是否显示"选了"是"。

维度三,缓存。PbootCMS有模板缓存和数据缓存,改了模板或菜单后没清缓存,前台还是旧的。后台"系统维护"-"缓存管理"-"清空所有缓存"。或删除/runtime/cache目录所有文件。浏览器Ctrl+F5强制刷新。

后台功能菜单不显示。维度一,用户权限。用的不是管理员账号,编辑员角色权限有限,只能看到内容管理等菜单。确认登录的是管理员账号,或在"用户管理"-"角色管理"里给角色分配菜单权限。

维度二,菜单被禁用。数据库ay_menu表的菜单status字段为0,菜单不显示。正常不会出现,二次开发或数据库异常可能导致。phpMyAdmin进数据库,查ay_menu表,看status字段,异常的改成1。

维度三,文件损坏。/apps/admin/目录下的控制器或视图文件损坏,导致菜单加载失败。重新上传PbootCMS的/apps和/core目录覆盖(备份后),修复损坏文件。

子菜单(下拉菜单)不显示。1. 模板里只写了一级菜单循环,没写二级{pboot:2nav}。添加二级循环代码。2. 后台菜单管理里子菜单的"上级菜单"没选对,重新选父菜单。3. CSS里子菜单设了display:none且没有hover显示效果,检查CSS。4. 移动端子菜单需要JS点击展开,检查JS是否正常。

菜单显示但点击404。1. 菜单绑定的栏目被删除,重新绑定或删除菜单。2. 外部链接URL写错,检查链接。3. 栏目绑定的模板文件不存在,检查栏目设置里的模板。4. 伪静态没配置,内页404,宝塔网站设置里加PbootCMS伪静态规则。

当前页菜单不高亮。模板里导航项没有加选中判断。PbootCMS用[nav:select]标签,选中时输出selected,没选中输出空。用法:

  • [nav:name]
  • 。CSS里写.nav li.selected a { color: #f00; }。

    移动端汉堡菜单不工作。1. 模板里有汉堡按钮但没有对应的JS切换菜单显示。添加JS:点击按钮切换nav的display。2. CSS里移动端nav默认display:none,点击后加active类变display:block,检查JS有没有加类。3. jQuery没引入或引入顺序错,$符号未定义,F12-Console看错误。

    排查流程总结。前台菜单不显示:先看模板有没有nav标签→再看后台有没有菜单→最后清缓存。后台菜单不显示:先确认管理员登录→再查数据库菜单表→最后检查文件完整性。子菜单不显示:模板二级循环→CSS显示→JS交互。按顺序走,基本都能解决。

    预防措施。1. 修改模板前备份。2. 菜单结构在后台管理,不要写死在模板里(写死了后台改不了)。3. 定期清缓存测试。4. 多用户时用角色权限控制菜单,不要共用管理员账号。5. 升级PbootCMS前备份数据库和文件。

    PbootCMS后台菜单不显示?权限、模板、缓存三维排查

    标签:

    更新时间:2026-08-26 17:37:52

    上一篇:宝塔面板数据库无法启动?MySQL启动失败的原因与修复方法

    下一篇:宝塔面板提示网络连接失败的十种原因与对应解决方法