介绍
基于 BuildAdmin + Nuxt 开发的网站导航系统,支持二次开发。
功能
-
支持分类无限层级,扁平显示
-
支持根据地址获取网站标题、简介,图标保存到本地(部分网站不支持,见下方答疑)
-
支持根据公众号文章地址获取标题、简介,公众号头像、公众号二维码保存到本地
-
支持分类私有可见设置
-
支持站点或公众号私有可见设置,若所在分类或所在分类任意父分类设置私有,也会同步隐藏
-
支持三种主题切换
-
支持页面开关灯模式(暗黑和明亮)
-
支持宽度自适应(手机,平板,pc)
使用前配置
上传文件类型
若需要支持 svg 和 ico 的图片文件,则手动在 config\upload.php 中修改如下以支持更多图片类型:
php
'mimetype' => 'jpg,png,bmp,jpeg,gif,svg,ico,webp,zip,rar,xls,xlsx,doc,docx,wav,mp4,mp3,txt', 系统配置
导航私有秘钥
安装模块后,在管理页面,按序点击【常规管理】-> 【系统配置】-> 【tab:基础配置】
存在 导航私有秘钥 项,值可以自己定义,默认 8866。
当某些分类和网站选择私有(不公开)时,通过 url 上添加 ?code=8866 可查看包含私有的分类和网站。
使用场景:可以放一些公司内部的网站地址或者运营的公众号
注意:
-
如果不公开的网站比较重要,该秘钥可设置的复杂点,或者定期更换,code 没对应上时接口不会返回。
-
若出现更改秘钥后,未生效,在后台管理那边右上角一键清理所有即可。
体验
前端地址:
显示公开的站点:http://navshow.imao2.com/nav
显示所有站点(包含私有):http://navshow.imao2.com/nav?code=8866
管理地址:
http://navbeta.imao2.com/#/admin/nav/category
账号密码:test/test123
体验服务器配置为 2 核 2G Ubuntu24.x 系统,流量有限,若无法访问可见预览图。
部署
使用宝塔面板时若遇到无权限,将 "运行用户" 切换为 root。
若部署配置的项目目录为 /web-nuxt 则,在 Nginx 示例配置中的 index index.html 下一行添加
bash
root /www/wwwroot/这里替换为你的项目所在文件夹名/web-nuxt/.output/public; FAQ:
Q1: 为什么有的网站无法自动获取简介、图标等信息?
答: 目前个人用下来 90% 的可以自动获取,部分无法获取的存在有以下几种原因:
-
当前是适配了几种网站标准的方式去获取的标题、介绍和图标,若网站无此标准的值,则无法获取
-
网站地址若是需要梯子的,则无法获取,你懂的
-
网站本身做了防御,获取时会 403 或其他方式禁止你访问
-
有些网站的 icon 是 svg,该 svg 在请求时会被重定向,故下载到本地后可能会返回一些不可用的
-
内网环境下的地址,如果项目部署在外网,无法访问那就无法自动获取
-
设置的请求时间为 30 秒,超时的话无法获取,可在
app\admin\controller\nav\Links.php中urlInfo方法中修改timeout
可能还会有其他一些情况,面对这些问题,建议手动去填写,该功能只是辅助功能。
Q2: 如何使用微信公众号的自动获取?
答: 打开一篇该微信公众号的文章,复制该文章的链接。
操作:可在 PC 端的微信上打开微信公众号,点击随便一篇文章,会打开微信自带的浏览器,点击右上角的 ··· 会出现【复制链接】按你,点击即可获取。
Q3: 可能会出现微信公众号无法获取公众号头像、二维吗、标题、简介等问题
答: 上线时是可用的,不排除后续官方会改规则,可在 app\admin\controller\nav\Links.php 中的 matchWeChatInfo 方法中调整。网站里也可以自己添加其他方法进行适配。
若出现无法获取,可以先用浏览器打开一篇文章看看二维码和公众号头像是否正常显示,有时官方自己的 api 会出错无法显示。
Q4:图片保存在哪儿?
答: 默认网站的存在 public\storage\icons 中,公众号存在 public\storage\wechat 中,可自行调整。
Q5:是否支持多用户功能?
答:暂未支持,本身 buildadmin 支持多用户,可自行扩展。
Q6: 是否有统计功能?
答: 导航网站统计的意义不大,暂未支持,如有需要,可用第三方统计,或自行添加。
Q7: 是否支持导入 chrome 书签?
答: 本来想加的,但是想想本身用新的导航站就是想重新分类梳理一遍,所以没有加。
Q8: 三种主题布局在哪儿切换,适合什么场景?
答: 和开关灯的按钮一样,在右下角,theme1 适合内容少的,theme2 适合内容中等,theme3 适合内容多的场景,默认是 theme2。均可个性化。
Q9: 没有填写 logo 时取的什么值?
答: 没有填写时默认取的 web-nuxt\assets\images\logo.png 的值,可自己个性化。
更新日志
v1.0.0
首次发布无详细更新日志
