普通视图

Received yesterday — 2025年6月14日技术

冬日恋歌:自制简易下雪特效

2025年1月3日 15:18

寒冷的冬日,没有什么比窗外纷纷扬扬的雪花更能带来浪漫与宁静的氛围了。但你知道吗,即使窝在温暖的室内盯着电脑屏幕,我们也能让这唯美雪景触手可及!今天给大家分享如何利用一段神奇的 jаvascript 代码,在博客上打造属于自己的梦幻冬景。

  •  

第一条凤眼菩提入坑

2024年11月14日 21:46

前段时间刷抖音短视频,看到木子师兄(李连杰老师)收了一条5.5MM的凤眼菩提。从视频里面认识到一位新生代收藏家:甲子,80后,是近年来国内喜马拉雅艺术市场最重要的参与者和推动者之一。接着关联到觀照,继第一条5.5MM后,7MM也被李连杰老师收入囊中

  •  

重写RSS朋友圈(FreshRSS)

2024年11月1日 10:23

FreshRSS

自2023年10月14日第一版(BUG:时不时抽风无数据,期间也维护优化过几次),最终还是决定放弃了。那段时间圈子里基本都在折腾(RSS朋友圈),迎来了一波热潮,所以我也不例外,借助FreshRSS有了第二版《新铸Wechat+友圈Bug修复》,但还是不尽人意,“Login failed.” 无解,也可能是环境问题总之是个未解之谜。所以、现在完善版本来了

  •  

Dabenshi API 接口整理合集

2024年10月28日 10:07

Dabenshi API(Application Programming Interface)接口提供热门话题、事件或内容排行榜信息的应用程序编程接口。以下是博主常用的热榜 API 接口,长期维护,欢迎调用。

  •  

工行存量房贷利率调整公告

2024年10月22日 09:53

为贯彻党中央、国务院决策部署,适应房地产市场供求关系新变化,满足人民群众对优质住房新期待,维护住房消费者合法权益,我行认真落实中国人民银行《关于完善商业性个人住房贷款利率定价机制的公告》(中国人民银行公告〔2024〕第11号)及市场利率定价自律机制《关于批量调整存量房贷利率的倡议》相关要求,积极依法有序推进存量个人住房贷款利率批量调整工作。为协助广大客户做好存量个人住房贷款利率调整工作,现将相关事宜公告如下。

  •  

中山桥 1933 古韵,2024 新辉

2024年10月17日 14:55

几个月前,无意间看到一些老照片,让人叹为观止!此次出行瞭望黄河,刹那间想起中山桥、白塔山以前的样子,寻找角度拍了照片。回京第一件事做了对比,变化还是蛮大的,从上到下“阶梯式”房屋已经不存在了。右侧少了两个建筑,塔左侧也少了一处建筑。非常珍贵的老照片

  •  

中秋明月照,灯笼映团圆

2024年9月14日 10:41

挂灯笼不仅仅是一种装饰,更是一种情感的寄托。每一盏灯笼都承载着祝福和期盼,它们在风中轻轻摇曳,仿佛在向远方的亲人传递着思念。无论是在城市的高楼大厦之间,还是在乡村的小巷深处,灯笼的光芒都能让人感受到中秋节的浓厚氛围和家的温暖

  •  

溯源热榜数组中 Image 字段值

2024年9月6日 15:51

自上次加了 “新闻快讯” API数据之后,慢慢发现 “今日头条” API热榜数据杂乱无章,相比之下 “澎湃” 更符合我的口味。但是!澎湃热榜图片无法调用,具体什么原因没看,因为看了也没用...如果是跨域资源共享(CORS)问题,那就没办法解决了,因为需要在服务器端添加 CORS 响应头,允许访问图片资源才行,所以这一步肯定不行。无奈之下去掉了 data 数组中的 imgae_url 对象,改为指定路径。思来想去绝对路径总有一天会腻,况且还要手动换,这也太麻烦了。所以又有了新的想法,调用必应每日图片。

  •  

2025量身定做的新衣服(存档)

2024年9月3日 17:31

最近看到大家都折腾起来了,其实我也没闲着,只是没有过多笔记记录,不过改动还是蛮大的。此文仅为数据存档,告诉大家我一直都在,无时无刻不在折腾

  •  

今年的七夕不是一个人了

2024年8月12日 17:07

今年的七夕不是一个人了,2024年8月6日晚,选礼物到很晚,也产生了很多想法。初步有这个念头是在7月26日,那时候就在想了,选什么礼物呢,是一个最大的难题。设想过黄金、首饰、包包...不过这些都有了,再送有点俗了... 8月7日早,结合昨晚的思考+现状,所以选择了这些礼物,因为时间关系 不能再耽搁了,就这么愉快的决定了。

  •  

n8n 玩法之同步博客到 Mastodon

2025年6月14日 12:04
使用 n8n 可以实现将博客内容自动同步到 Mastodon 的流程。通过监测 GitHub 博客仓库的更新,结合 Sink 短链接服务判断文章是否新发布,并生成短链接以便在 Mastodon 上创建对应嘟文。此过程包括获取最新 RSS 内容、检测短链接状态以及在确认文章为新发布后进行推送和短链接创建。这种方法不仅提高了效率,还确保了博客与社交平台之间的无缝连接,实现了一次性操作多平台同步的目标。

  •  

远程挂载Macbook中电脑的文件,使用Alist配合SFTP在家访问公司电脑文件

2025年6月13日 18:44
这篇文章介绍了通过技术手段实现家庭与公司Macbook文件远程访问的方法。具体步骤包括使用防止休眠的软件启动Macbook,开启远程SSH登录,搭建网络组网实现跨网络访问,创建SS密钥文件以替代密码登录,以及在Alist文件夹中连接并设置路径。这种方法解决了携带公司文件不便的问题,确保了工作的便利性和安全性。
  •  

Garfield文字主题

2025年6月13日 15:22
Garfield文字单栏主题.webp

Garfield

一个简约的Typecho文字主题(目前代码写法不够严谨,php8下可能会报错,建议使用php7.2~php7.4版本)

演示

{button href="https://demo.typecho.work/?theme=Garfield" type="blue"}在线预览{/button}

下载

主题功能

  • 单栏主题、简洁、美观。
  • 主题支持懒加载,默认图片在主题根目录,可以自行修改
  • 主题对文字记录的博客较为友好。
  • 主题大部分静态文件(包括主题表情文件)都在本地
  • 主题pjax文章列表无刷新加载。
  • 主题适配Links插件,有专属的友链页面。

开源地址

https://github.com/SurGarfield/Typecho-Theme-Garfield

  •  
Received before yesterday技术

Docker部署Drawnix可视化白板工具、兼顾思维导图

2025年6月13日 10:36

目前办公用的一款亿图的 MindMaster ,虽说免费功能也够用了,有时候其它地方也偶尔会用到,每次都安装软件也麻烦,之前用过一款 mind-map 不尽如人意,今天正好看见博友的项目推荐,感觉Drawnix是我所需要的,准备部署来使用。

功能特点

  • 免费 + 开源
  • ⚒️ 思维导图、流程图
  • 画笔
  • 插入图片
  • 基于插件机制,导出为PNG,JSON(drawnix)
  • 自动保存(浏览器缓存)
  • ⚡ 编辑特性:撤销、重做、复制、粘贴等
  • 无限画布:缩放、滚动
  • 主题模式
  • 移动设备适配
  • 支持 mermaid 语法转流程图
  • ✨ 支持 markdown 文本转思维导图(新支持 )
基于以上内容,我觉得功能性上而言,毋庸置疑。

我部署项目有个习惯,一般优先选择源码部署,看了下该项目也就是个静态项目,不依赖其它东西,所以我就尝试把代码拉下来编译,试了几次发现一直有问题,node版本也切换了好几个,最终都没有成功,由于我本地各类型项目众多,环境也有很多套,所以思量再三,考虑放弃源码部署,采用docker部署。

因为作者并没有提供官方镜像,但好在项目提供了 Dockerfile 文件,我们可以自构建一个。

Docker compose命令如下

version: '3' # 最新版docker compose删除该行
services:
  drawnix:
    image: ydxian/drawnix:latest
    container_name: drawnix
    ports:
      - "8200:80" # 冒号左侧可自行修改
    restart: always

部署成功后,浏览器输入http://127.0.0.1:8200即可访问服务。

同时也可以直接在 宝塔面板中 操作

  1. 安装docker:点击左侧docker,如果没有安装,直接安装即可;
  2. pull 镜像:选择 线上镜像,输入 drawnix,拉取即可;
  3. 运行容器:本地容器中选择drawnix镜像,直接直接创建容器,添加暴露端口号,左侧8200,右侧80即可,如果需要用端口号访问,记得宝塔中放行该端口号;
  4. 配置域名反代:域名解析好,宝塔中添加站点,选择静态,站点设置中添加反代即可;

我部署的地址:drawnix

drawnix源码仓库

  •  

睡着的人不关灯

2025年6月13日 06:33
如要阅读全文,点击标题跳转。进入大学三月有余,各种亘我未见的事映入耳目,对于我这么一个特立独行的人而言——以真理为用却被误为高傲——原是早该揭竿而起的,但我却连文字也没有开动丝毫,想是为耐心静观以透思之故也。您读到这题目也许会思考,这是一个哲学命题吧?其实错了,我这个题目是一个常规的陈述句,意思就是:睡着的人,不知(去)关灯。

  •  

学习周刊-总第215期-2025年第24周

2025年6月13日 05:52
如要阅读全文,点击标题跳转。 学习周刊 - 总第 215 期 | zsh-in-docker | selfhost-hub | ImageFlow | harness | zola | listmonk | vscode-portfolio | allinssl

  •  

Cloudflare/Vercel项目推荐(5)

2025年6月12日 21:12
项目荒啦!终于凑够了一批项目,前面四期深受大家喜爱,获得了不少评论和浏览量,那就更新一篇文章吧!本次更新主要围绕着cloudflare和Vercel展开,基本上都可以零成本部署,欢迎尝试部署!当然我也会提供预览地址,如果用处较大会一直维护,欢迎访问呀!
  •  

2025年7款平替 AList 私有部署的网盘软件

2025年6月12日 11:57

7款平替 AList 私有部署的网盘软件
7款平替 AList 私有部署的网盘软件

AList 是一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。它可以将 40 多款主流网盘聚合到一个网页上,进行文件管理、视频播放等操作。

AList 是一个开源项目,已经卖给了其他公司,现在最新可用收购前版本是 3.40.0

下图来源

作者TG回应
作者TG回应

吃瓜地址:Alist 收集用户信息提交记录Alist被卖 Github用户讨论Alist被卖 V2讨论Alist被卖 V2讨论

今天主要推荐几款可以平替 AList 私有部署的网盘软件。

如何取消对 alist 的授权

Alist 取消授权 Github讨论合集

  1. 百度网盘(来源: https://pan.baidu.com/union/doc/Jl0j9pza3
  2. 百度网盘App:我的 - 设置 - 帐号管理 - 授权管理 - Alist - 解除授权
  3. 阿里云盘App:我的 - 设置(右上齿轮) - 隐私设置 - 授权管理 - Alist - 解除授权
  4. OneDrive 解除授权:https://account.live.com/consent/Manage
  5. 115APP - 生活 下滑 -账号与安全 - 多端登录管理 - 第三方登录
  6. 联通云盘 - 在网页查询登录账号 - 以后建议 按照 教程抓包登录
  7. 一刻相册 头像-应用设置-账号管理-授权管理
  8. 谷歌(网盘和相册)- 管理您的谷歌账号 - 安全性 - 您与第三方应用和服务的关联 - 有权访问账号 - 选择对应的产品
  9. Dropbox - 设置 - 应用 - 查看 Dropbox 内容

Alist 变形

go-drive

go-drive 是一款简单的云驱动器映射网络应用程序,支持本地、FTP/SFTP、S3、OneDrive、WebDAV 和 Google Drive。

目前支持的云存储

  • 本地文件
  • FTP
  • SFTP
  • WebDAV
  • S3
  • OneDrive (支持世纪互联版及 SharePoint 站点)
  • Google Drive
  • Dropbox
  • 七牛云

功能

  • 文件管理

    • 上传,下载,复制,移动,重命名,删除
    • 拖拽/粘贴上传文件(夹)
    • 拖拽复制/移动/挂载
    • 支持不经过服务器上传及下载,减少服务器流量消耗(仅部分云存储支持,详见下文)
    • 上传文件支持断点续传

    按住 Ctrl, Shift 可进行多选

    从系统复制文件(夹)后,按 Ctrl + V 直接粘贴上传

    按住 Alt 并点击文件,可直接下载文件

    拖拽文件(夹)时,按住 Ctrl 进行复制,按住 Alt 创建路径挂载(仅管理员可用)

  • 文件打包下载

  • 基于用户/组的权限控制

    支持为某目录或文件分配权限,支持限制到用户或组

  • 图片浏览(PhotoSwipe)

  • 音乐播放(APlayer)

  • 文本编辑(CodeMirror)

  • 代码编辑(Monaco Editor)

  • 展示缩略图

    支持自定义缩略图生成策略,详见缩略图配置

  • 路径挂载

    允许管理员将某文件/目录挂载到任意位置

  • Drive 管理界面

  • 文件搜索

  • 通过 WebDAV 访问

  • 定时任务(gocron)

    支持简单的任务类型(复制/移动/删除)和 JavaScript 脚本类型

go-drive 预览图
go-drive 预览图

红枫云盘

红枫云盘官网地址) 是一款无服务端的多协议云盘文件上传和管理软件,提供了文件上传、预览、操作、同步备份等功能

支持的存储

  • 本地文件
  • FTP
  • SFTP
  • S3
  • SMB
  • Webdav
  • Alist
  • Github
  • Github Release
  • Mirror(镜像站,支持文件查看和下载,支持格式:清华源、阿里源或者其他 NGINX 文件列表源)
  • 又拍云

功能

  • 支持文件列表查看/复制/移动/删除/重命名/上传/下载
  • 支持桌面端拖拽上传(文件或者文件夹)
  • 支持文件多选及操作
  • 支持文件列表信息缓存
  • 支持回收站
  • 支持视频、音频、图片和文本文件的预览
  • 支持文件加密和压缩
  • 支持各存储之间的备份和同步(测试中)
  • 支持多语言(中文、英文)
  • 支持 Web, Android, MacOSWindows

红枫云盘预览图
红枫云盘预览图

Zdir

Zdir前台演示帮助文档) 是一款集文件索引、在线预览与分享于一体的多功能私有存储程序,支持 WebDAV 和离线下载。

  • 挂载第三方存储(S3/WebDAV/SMB)(需要付费)
  • 文件索引
  • 文件预览(支持图片、文档、音乐、视频等预览)
  • 私有文件
  • 私有文件分享
  • 文件管理(上传、下载、删除、重命名)
  • 图片预览
  • 图床模式
  • API支持
  • WebDAV服务端支持(需要付费)
  • 全局文件搜索
  • 前后台一体化
  • 文本编辑
  • 音乐列表模式
  • 文件移动、复制
  • 离线下载
  • 多语言
  • 在线解压
  • HTML小工具
  • Ofiice预览

Docker部署命令

docker run --privileged -d --name="zdir" \
  -v /opt/zdir/data:/opt/zdir/data \
  -v /data/public:/opt/zdir/data/public \
  -v /data/private:/opt/zdir/data/private \
  -p 6080:6080 \
  --restart=always \
  pub.tcp.mk/helloz/zdir

Zdir功能图
Zdir功能图

Zdir 会员图
Zdir 会员图

File Browser

File Browser官网地址)国外作者开源的一款私有存储软件,支持多用户且界面友好,但是不支持挂载第三方存储,适合管理和分享本地文件。

filebrowser 提供了一个指定目录下的文件管理界面,可用于上传、删除、预览、重命名和编辑文件。它允许创建多个用户,每个用户可以拥有自己的目录。它可作为独立应用程序使用。

File Browser预览图
File Browser预览图

FileBrowser Quantum

FileBrowser Quantum 最好的免费自托管网络文件管理器,是File Browser开源项目的一个大型分叉。

  1. 支持多种来源
  2. ✅ 登录支持 OIDC、密码 + 2FA 和代理。
  3. ✅ 全新用户界面
  4. ✅ 通过 config.yaml 配置文件简化配置。
  5. ✅ 超高效索引和实时更新
    • 键入时实时显示搜索结果。
    • 用户界面实时监控和更新。
    • 搜索支持文件和文件夹大小以及各种过滤器。
  6. ✅ 更好地浏览列表
    • 更多文件类型预览,如办公和视频文件预览
    • 即时切换视图模式和排序顺序,无需重新加载数据。
    • 显示文件夹大小。
    • 导航时会记住上次滚动的位置。
  7. 开发人员应用程序接口支持
    • 能够创建长期有效的 API 标记。
    • /swagger 端点为启用 API 的用户提供了有用的 Swagger 页面。

Zfile

Zfile演示地址) 是一款使用JAVA开发的在线目录展示程序,支持将本地文件、FTP、SFTP、S3、OneDrive 等存储在网站上展示并浏览,Zfile分为免费的开源版本和功能更强大的捐赠版本。

  • 支持本地存储、Amazon S3、阿里云、腾讯云、又拍云、FTP、SFTP、OneDrive、SharePoint 等存储类型
  • WebDav 需要付费

Zfile 功能图
Zfile 功能图

dirlist

dirlist预览地址)是彩虹大佬用 PHP 开发的目录列表程序,无需数据库,安装简单,使用方便。dirlist 功能上稍微要弱一些且不支持挂载第三方存储,如果用不到这些功能的话 dirlist 也是一个不错的选择。

  • 在线预览图片、视频、音频、文本文件、Markdown文件、Office文档等
  • 自动识别目录下的README.md文件并展示(类GitHub)
  • 后台管理可设置网站标题、公告、底部代码等信息
  • 文件搜索功能,支持缓存文件索引
  • 自带全新的文件管理功能
  • 支持中文文件名编码设置,解决乱码问题
  • 支持安装在子目录

dirlist预览图
dirlist预览图

Cloudreve

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台。可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

  • 支持使用本机、从机、七牛、阿里云 OSS、腾讯云 COS、华为云 OBS、S3、OneDrive 作为存储端,上传/下载均支持客户端直传,无需服务器中转。
  • 将磁力链、种子文件、下载链接交给 Cloudreve 处理,Cloudreve 会在服务端下载您指定的文件,并自动上传到对应的存储端中。您还可以通过从机 Cloudreve 节点,将不同的离线下载和转存任务分配到不同服务器处理,减轻主节点的负载压力。

Cloudreve 本身是一款“网盘”而非“其他网盘的管理器”,其所支持的存储提供商大多为公有云的存储专用产品,而非针对个人消费者的网盘。下面情况并不适合使用 Cloudreve:

  • 需要用 Cloudreve 管理多个网盘上的文件;
  • 对于 Cloudreve 存储的文件,我同时也会使用其他文件管理器一起管理;
  • 想把其他网盘存储服务“再分发”给我的用户使用;

Cloudreve 预览图
Cloudreve 预览图

  •  

暂且这样吧,启用Redis对象缓存

2025年6月12日 10:11

近日站点访问速度时好时坏,宝塔面板也无法登录,MySQL经常崩溃而停止服务,内存溢出现象比较严重。

针对这一系列问题,我也没有太好的方法。WordPress虽然臃肿,但不至于此,可能是服务器哪里出了问题。又因不精通Linux操作及优化,SSH尝试无果后,重启Linux服务器后似乎正常了。

接下来开始搞搞WordPress的缓存,进一步优化缓存,希望这些措施奏效。

自建站以來,仅使用WP-Super-Cache插件的简单模式,对WordPress的缓存并不上心,甚至没有观察过页面加载时间。对加载速度意向凭感觉,只要能接受就好。

想到了大多数博友常用的WP-Rocket插件。此插件未在WordPress库中找到,虽然在GitHub中能找到该插件,但安装后无法启用,不知是何原因,百度AI给了一些建议尝试均无效果。

本着简单至上,放弃WP-Rocket,转而下载了Redis Object Cache插件,使用宝塔安装了Redis服务,将Nginx更换为Apache服务器,这样可以使用WP-Super-Cache插件的专家模式。

WP Super Cache与Redis Object Cache相互配合构成了目前站点的缓存方案。

趁此机会安装了WPAvatar文派头像,这应该是解决头像不显示的便捷且简单的方案吧。

  •  

XuanSecret

2025年6月12日 09:51

XuanSecret

一个 Typecho 文章内容隐藏插件,支持隐藏文字、图片、附件等内容,访客评论后即可查看。

下载

功能特点

  • 支持隐藏任意内容(文字、图片、附件、链接等)
  • 管理员和文章作者可直接查看隐藏内容
  • 评论过的用户永久可见该文章的隐藏内容
  • 支持游客无需登录即可评论
  • 自定义提示文本
  • 支持设置所需评论次数
  • 支持内容预览功能
  • 响应式设计
  • 编辑器快捷插入按钮

使用方法

在文章编辑时可以:
使用编辑器右侧的"插入隐藏内容"按钮
或手动输入短代码:[secret]这里是隐藏的内容[/secret]

开源地址

https://github.com/BXCQ/XuanSecret

  •  

BaiduPush

2025年6月12日 09:44

BaiduPush

一个用于自动将Typecho博客文章推送到百度收录的插件。

下载

功能特点

  • 自动推送新发布的文章
  • 支持手动批量推送
  • 支持多种URL格式
  • 自动控制推送频率
  • 详细的推送日志记录

开源地址

https://github.com/BXCQ/typecho-baidu-push

  •  

PostUrlDisplay

2025年6月12日 09:38

PostUrlDisplay

本插件可以在Typecho后台的文章管理页面中显示每篇文章的完整URL地址,方便管理员快速查看和复制文章链接。插件会自动调整表格列宽,确保所有列都能正常显示而不会重合。

下载

主要特性

  • URL列显示: 在文章管理表格中新增URL地址列
  • 智能布局调整: 自动重新分配列宽,防止列重合问题
  • 灵活位置配置: 可选择URL列在表格中的显示位置(标题后、日期前、日期后)
  • 一键复制: 点击URL链接即可复制到剪贴板,同时在新窗口打开
  • 智能识别: 自动识别草稿文章并显示相应提示
  • 响应式设计: 在移动设备上自动隐藏URL列以保持界面简洁
  • 悬停预览: 鼠标悬停时显示完整URL,避免长链接显示问题

效果演示

448941089-48264d7e-0d63-458b-98f7-e17be84410bd.webp

开源地址

https://github.com/BXCQ/PostUrlDisplay

  •  

n8n 玩法之备份 Mastodon 嘟文

2025年6月11日 15:55
n8n 是一个强大的自动化工具,可以用来备份 Mastodon 嘟文。通过 n8n,嘟文可以同步到 GitHub、Memos、Notion 和 Twitter 等平台,实现多平台内容管理。为了加速访问,通过 Cloudflare CDN 加速和阿里云 OSS 缓存提高了博客的加载速度。在配置过程中,需要在 n8n 中创建凭证,并使用 Webhook 与 Mastodon 进行集成。当发布新嘟文时,Mastodon 会触发 n8n 流程,将优化后的内容同步到各个指定的平台上,从而实现高效的内容备份与分发。整个流程运行稳定且快速,为用户提供了一种便捷的数字资产管理方式。

  •  

服务器磁盘满了,该如何清理?

2025年6月11日 17:18

突然发现服务器磁盘占比到了80%了,其实也没存储啥,附件图片都在cos上,那就奇怪了,一步步排查看看吧

使用以下命令查看各目录占比情况,一步步排查大文件

du -h --max-depth=1

小水管机,太难了,一查询文件,内存就爆红了,哎

建议避免全盘扫描,最好带上目录,类似下面这种

du -h --max-depth=1 /var/log

先排查日志

宝塔中自带有日志工具,可以直接使用,扫描成功后会显示日志占比,我的只有100M的样子,所以肯定不是这个问题,继续往下走

docker镜像及容器

我之前使用过docker,看了下 /var/lib/docker/overlay2 占用了接近4G,其实我只用了一个镜像,也才200M,所以也需要清除

# 清理未使用的镜像
docker image prune -a

# 清理未使用的容器
docker container prune

# 清理未使用的数据卷
docker volume prune

# 一次性清理所有未使用的资源
docker system prune -a

# 查看Docker磁盘使用情况
docker system df

清理完毕后,发现内存 +4G ,继续往下走。

清理了定时备份

数据备份很重要,重要数据库我都是1天备份一次,网站一周备份一次,当然只保留了3份,所以占比也不是太大,不过我还是选择清理了一些,内存 +1G

定时清除日志脚本

每次手动清除日志太麻烦了,弄个脚本自动清除吧。宝塔中计划任务添加自定义脚本,然后设置清除时间即可

#!/bin/bash

# 定义日志目录
LOG_DIR="/var/log/myapp"

# 清除日志文件
find "$LOG_DIR" -type f -name "*.log" -mtime +30 -exec rm {} \;

# 或者清空日志文件而不删除
# find "$LOG_DIR" -type f -name "*.log" -exec truncate -s 0 {} \;
我这一套下来,大概省了10G左右。
  •  

面对Alist商业化:如何从Alist解绑阿里云盘?如何避免阿里云盘的数据被第三方应用读取

2025年6月11日 12:03
这篇文章介绍了AList项目启动商业化运营后引发的争议。项目在技术实现上采用非开源后端API,引发了关于数据安全和用户隐私的担忧。文章指出,对于不信任企业可能访问阿里云盘数据的用户,解绑AList命令可作为选择,以规避隐私风险。解绑操作适用于两类用户:数据敏感型用户(如存储个人隐私内容)和对商业化实体缺乏信任的用户,而对仅存储公开文件的用户则无需解绑。文章对解绑的具体操作内容、选择依据以及潜在风险进行了详细的说明,强调用户需需谨慎判断后端API使用情况。此外,文章对AList的运营方(贵州不够科技)的治理能力提出质疑,认为其非公开备案、小企业的性质以及阿里云盘认证的开放度均存疑。文章建议用户在权衡隐私与开放性时保持谨慎态度,同时指出解绑解过程仍面临使用风险,如阿里云盘可能未完全开放系统信息统计功能。
  •  

2025最佳预订——伟大的艺术品

2025年6月10日 19:33

{cat_bili p="1" q="16" key="BV1UzXNYKEoN"}

前些日子断断续续打完《漫威银河护卫队》之后,闲来无事翻油管,突然被一个reaction视频吸引了。utuber是一个关注的游戏游戏主播,但是玩的游戏我却不曾见过。搜了一下,出现了一个很吸引我的名字——《光与影:33号远征队》。

问过朋友,朋友说游戏剧情口碑不好,于是打算自己玩玩试试,结果一下子玩到现在通过,只能用几个词来形容我现在的心情:酣畅淋漓,美不胜收,真正的第九艺术。

简单说说游玩过后的感想。

首先是音乐。全部OST154首音乐插曲,每一首都是极其优秀的曲目。让我印象最深刻的有四首,一首开局时的《Lumière》,以及第二幕关末的雷诺阿战斗曲和绘母战斗曲,还有一首是终章的那首激昂的战斗曲——《Une vie à t'aimer》(用一生去爱你)。

{cat_webmusic id="2692441575"}
{cat_webmusic id="2692441576"}
{cat_webmusic id="2692439142"}
{cat_webmusic id="2692443161"}
{cat_webmusic id="2692443203"}
{cat_webmusic id="2692441670"}

曲子虽然繁多,但是每一首都恰到好处,没有那种很突出的与众不同的杂乱的节奏,仿佛就和游戏一样,一幕幕下来,仿佛一场歌剧直到最终落下帷幕。

然后搭配画面,每一帧都是完美的镜头,完美的光影,所以我截了许多截图,每一张都不舍得去掉。在游玩的时候搭配美妙的音乐,真的是梦一般的享受。

{cat_gallery}





























{/cat_gallery}

下段落剧透预警

当然,剧情是绕不开的话题。开篇说过,许多人反应剧情虎头蛇尾,还有人说见仁见智,甚至游戏开发商还为此发过文说东亚玩家对剧情存疑可能是文化差异,说是不是很习惯这种悲剧结尾。秉着好奇心,我完全没有被剧透,因此远征队的覆没(woc吕西安光速白给了,卡特林也死在了尸堆)古斯塔夫的死给了我一震,竟然真的死了?(上次一震还是玩异度之刃1的时候女主光速便当,不过后面剧情复活了,最终也是大团圆结局)然后就是绘母的反转,玛埃尔的身世等等。其实游戏一直都有透露细节,比如众人一直在议论玛埃尔,甚至雷诺阿战斗曲Une vie à t'aimer的含义,用一生去爱你等等,所以这种铺垫更让游戏有一种精妙作品的感觉。

整体剧情通关之后玩下来,给我的第一感觉就是,完美的剧情!甚至他只在结尾给了你两个选择,更加的开放式。但是我就不理解为什么网上有人说不好了。这结局也不悲剧啊,结局哪有开头的悲剧啊?难不成现在都只看王道和合家欢???直到后来看有人评论到:央视春晚年年包饺子是不无道理的,然后我就理解了。

当然我给了他9.5分,也是有不足之处的,这不足之处在于游戏性上。一点是数值的崩坏,但是这是不可避免的,毕竟一直都是倍数叠加,崩坏也正常。然后有几处个人不喜欢的,一个是怪物种类有点少了,那个默偶和滚球完全是格格不入的东西..然后就是露营时培养的角色感情线,太唐突了。不如去掉感情点数,直接做随机触发好了。

总的来说,这部游戏我甚是喜爱,也推荐给大家,有机会可以慢慢享受一下游戏。

  •  

Bilibili、YouTube等视频网站频繁出现缓冲卡顿的解决方案

2025年6月9日 23:05

某一天开始,我发现电脑在使用外接 USB 音响播放 B 站视频时,大约在播放 1、2 分钟后,会突然卡住,缓冲一段时间后再开始播放,之后就一直重复缓冲、播放几秒到十几秒再次缓冲的过程,之后发现不仅仅是 bilibili,其实 YouTube 等其他视频网站都存在这个问题。
在一番搜索查找后终于知道问题所在:这个看似是网络卡顿的现象,居然是瑞昱(Realtek)的音频驱动导致的,不用 Realtek 驱动就可以解决问题。

Bilibili、YouTube等视频网站频繁出现缓冲卡顿的解决方案


播放缓冲卡顿故障表现细节

故障前提

  1. 必须是win10或win11系统
  2. 使用瑞昱(Realtek)声卡并安装了 Realtek 官方驱动

故障表现

  1. 在使用外接USB音响、蓝牙耳机、有线耳机、笔记本自己的音响等播放 Bilibili、YouTube、奈飞 等视频网站内视频时。如果视频一直在播放大概率不会出问题。
  2. 如果中间暂停视频一段时间后再播放,再次播放一段时间后会突然卡住,显示正在缓冲,缓冲一段时间后再开始播放,之后就一直重复缓冲、播放几秒到十几秒再次缓冲的过程。(如果暂停后马上恢复播放则大概率不会出现问题)

  3. 此时网络实际很通畅、使用视频网站的测试工具也显示不存在网络问题。

  4. USB音响可以通过拔下再插上恢复正常,蓝牙耳机可以通过关闭蓝牙再打开恢复正常,最不济可以通过重启电脑恢复正常。

  5. 但是过一段时间又出现上述状况,而且浏览器类型(起码我测试chrome、edge、Firefox都一样)、浏览器扩展(无痕模式、安全模式都有这个问题)、网络情况(获取直链后用工具下载时无任何问题)、用什么播放器(用potplayer播放网络URL也会出现这个问题)等等都无关。

故障解决

定位故障点

这个问题困扰了我很久,但奇怪的是我用蓝牙耳机播放时几乎从来不会出现这个问题,不过因为我一般都是用蓝牙耳机为主,对我影响不大,所以这个问题也就一直放着没管。

直到我看到了这篇文章《如何解决B站暂停视频后一直缓冲问题 – 龙鲲博客》 如同醍醐灌顶,我电脑的现象和博主的简直如出一辙。至于为何我用蓝牙耳机反而不会像原文所说的那样有问题呢,可能因为我使用了替换的蓝牙驱动吧。

卸载Realtek(R) Audio 的官方驱动

简单说就是 Realtek(R) Audio 的官方驱动有bug,卸载官方驱动后换成 Windows 自带的通用驱动,并防止 Windows 自动更新将驱动为 Realtek(R) Audio 官方驱动即可。

  1. 在开始菜单按钮上右键或在开始菜单里搜索「设备管理器」,找到「设备管理器」启动。
  2. 点开「声音、视频和游戏控制器」,找到「Realtek(R) Audio」,右键单击,选择「更新驱动程序」
    更新驱动程序

  3. 点击 「浏览我的计算机以查找驱动程序软件」

  4. 点击 「让我从计算机上的可用驱动程序列表中选择」

  5. 取消勾选「显示兼容硬件」,在左侧厂商框里找到并点击「Microsoft」,在右侧型号框内找到「High Definition Audio 设备 版本:XX.XX.XXX.YYYY [YYYY/MM/DD]」,选择版本号最大,日期最近的那个。

进阶步骤

因为有可能 windows 系统更新时还会自动安装 Realtek(R) Audio 的官方驱动,所以最好还是禁止一下。

通过组策略禁止自动更新驱动

仅限 Windows 专业版、企业版、服务器版等有组策略的系统
1. 按 「Win + R」,输入 「gpedit.msc」,回车打开「组策略编辑器」

  1. 依次展开:「计算机配置」 → 「管理模板」 → 「Windows 组件」 → 「Windows 更新」 → 「管理从 Windows 更新提供的更新」 → 双击左侧的「Windows 更新不包括驱动程序」 → 选择 已启用 → 点击「确定」

  1. (可选步骤)以管理员身份,在命令行中执行 gpupdate /force 让组策略强制生效。

通过注册表禁止自动更新驱动

  1. 按 「Win + R」,输入 「regedit」,回车,同意 UAC 提示。(如果有的话)
  2. 依次展开:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
    在窗口右侧,右键 → 新建 → [DWORD (32 位) 值」,命名为 ExcludeWUDriversInQualityUpdate

  1. 双击该值,将数值数据改为 「1」 → 点击 「确定」
  2. 重启系统生效。

(可选) 进行一次【完全重启】

因为 windows 从 win8 开始默认会开一个叫“快速启动”的小功能。
快速启动结合了传统关机和休眠模式的特点:在系统关闭或重启时,会仅将内核会话和设备驱动状态保存到硬盘的 hiberfil.sys 文件中。

如果你的系统硬件较新,系统也是比较新的win10、win11版本,理论上系统会在你更改驱动后自动将下一次启动进行完整重启,不执行“快速启动”。
但是这只是理论上,偶尔还是会出现。更新了驱动,系统还是来个快速启动,直接获取保存的驱动状态,就有可能导致音频驱动加载出错, Realtek(R) Audio 音频设备直接消失。如果出现了这个情况请再尝试下边的步骤解决问题。

方案一:彻底关闭快速启动
  1. 右键点击 开始菜单 → 选择 “终端(以管理员身份运行)” 或 “命令提示符(以管理员身份运行)”。
  2. 以管理员身份运行powercfg /h off此命令会同时禁用休眠和快速启动。如需重新开启,输入 powercfg /h on
  3. 代价就是每次系统启动需要的时间多了5、6秒(SSD),如果你是机械硬盘可能会更久比如20多秒。
方案二:只完整重启一次,不关闭快速启动
  1. 点击开始菜单的 “电源”图标 → 按住 Shift键 同时点击 “重启”。
  2. 系统进入 “高级启动”界面 → 选择 “继续退出并进入Windows”。

The post Bilibili、YouTube等视频网站频繁出现缓冲卡顿的解决方案 appeared first on 秋风于渭水.

  •  

如何备份 Mastodon

2025年6月9日 22:09
备份 Mastodon 可以通过命令行工具 rclone 实现,将数据同步到云存储如 COS 和 R2。首先安装并配置 rclone,生成配置文件后编写备份脚本,包括 PostgreSQL 数据库和其他目录的备份。使用 cron 定时任务每天自动执行该脚本,并定期验证备份完整性以确保数据安全。此方法避免了面板带来的资源占用和潜在安全隐患,同时可以根据需求灵活调整备份内容和频率,实现高效可靠的数据保护。

  •  

从 dnsmasq 到 smartdns:打造一个靠谱的家庭 DNS 国内外查询分流系统

2025年6月9日 06:47

从 dnsmasq 到 smartdns:打造一个靠谱的家庭 DNS 国内外查询分流系统 无敌的个人博客 tangwudi

1 前言 之前,我写过一篇关于 dnscrypt-proxy 部署的文章(参见:dnscrypt-proxy(v2.1.8) 多场景配置指南:从上游部署到下游集成)。当时的架构是:利用Racknerd 的芝加哥 VPS 部署 dnscrypt-proxy,作为加密的 DNS 上游服务器(以DoH方式发布),而家庭数据中心的 AdGuard Home(因为AdGuard Home支持上游节点是DoH) 作为DNS 下游节点为内网设备服务 ,从而为家庭网络提供一个纯净、无污染、且支持加密传输的 DNS 服务。 不过,这种方案在实际使用中也存在一个局限:无法实现国内和国外 DNS 查询的分流解析。当然,这并不是因为 dnscrypt-proxy 本身不支持,而是它的分流机制更偏向于”基于服务器策略的转发”(例如通过不同的 server-names 配置),而不像 dnsm […]

<p>The post 从 dnsmasq 到 smartdns:打造一个靠谱的家庭 DNS 国内外查询分流系统 first appeared on 无敌的个人博客.</p>

  •  

Docker 部署 Mastodon

2025年6月9日 00:05
使用 Docker 部署 Mastodon 实例时,需注意选择合适的用户名和域名,因为一旦加入联邦宇宙,这些信息将无法更改。部署前应确定实例规模,以便进行相应优化。基本步骤包括准备 VPS、安装 Docker 和相关插件,并配置必要的文件如 compose.yml 和 .env.production。在设置过程中,要根据提示输入信息并生成环境变量文件,确保正确配置数据库、Redis 及 Elasticsearch 等服务。此外,还需通过反向代理工具如 Nginx 或 Cloudflare Tunnels 来管理流量,并创建管理员账号以维护实例。最后,通过调整目录权限和 SSL 配置来保证安全性与稳定性。

  •  

2025年5月阅读书摘

2025年6月8日 10:22

5月阅读记录

  • 《克林索尔的最后夏天》Done
  • 《稀缺》Done
  • 《东京贫困女子》Done
  • 《悉达多》Done

5月阅读书摘

《克林索尔的最后夏天》

路易

  • 人们太高估感官愉悦了,将精神生活看作是对缺失的感官体验的补偿。然而,感官并不比精神更具价值,反之亦然。因为一切都是合一的,一切都同样美好。无论你是抱一位女子,还是作一首诗,都是一样的。只要那个核心在,即爱、热望和激情在,它们便是一体,无论你是在阿索斯山做隐修僧,还是在巴黎做花花公子。
  • 世界是肥皂泡,是歌剧,是欢闹的荒唐。

后记 回忆克林索尔的夏天

  • 尽管年轻人也没啥可羡慕的,但至少还一直有机会,从一个坚硬冰冷、迟钝无趣的世界中苏醒新生,而我们这些老人却来自于旧时代,那些曾被我们高度认同的世界观如今却成了可笑荒唐的昨日黄花。时代惊人地变快了,更年轻的人们不再以年龄段、时代或至少五年期来计量时间,而是以每一年,所以相信1903年的人与相信1904年的人已经有代沟了。
  • 这就是克林索尔的夏天。闪耀的日子里,我在村落间和栗林里漫步,坐在折叠椅上,尝试用水彩保存下稍纵即逝的流光溢彩;在温暖的夜里,我在克林索尔宫殿那些开着的门窗前一直坐到很晚。我的写作技法比绘画更为熟练与严谨,我便用字句来歌唱这个永不停止的夏天。于是画家克林索尔的故事便诞生了。

山隘

  • 世界越来越美了。我独自一人,却很自在。我别无所求,只想被阳光晒透。我渴望成熟。准备好死去,准备好重生。

  • 远处并无战鼓传来,大时代再次由神奇日夜,由晨昏午暮所构成,世界那隐忍的心,重又跳动起来。当我们躺在草地上,耳朵聆听大地,或在桥上探身看水,或久久凝视明亮天空,便能听到那巨大的祥和心脏在跳动,那是母亲的心脏,我们是她的孩子。

牧师居所

  • 无论在舌尖上还是在脚跟上,无论在快慰中还是苦痛中,只要能感受到内在生命的颤动就是好的。感觉到我的灵魂是活着的,千百种幻想蕴藏于千百种形式中,在牧师或游子、厨娘或屠夫、孩子或走兽中,当然也在鸟儿、树木中,这才是重要的,这才是我的生命所愿所需。一旦无法再这样活着,而必须依赖所谓的“现实”,我宁可死去。

树木

  • 当我们感到悲伤,无法再忍受生活,一棵树就会对我们说:安静,安静!看着我!生活既非容易,生活亦非艰难。让神在你心里说话吧,那些妄念就会沉默。你慌了,因为你走的路偏离母亲和故乡;但其实你的每一步、每一天,又将你拉近母亲身边。故乡不在此处或彼处,除了在你心中,故乡不会在任何地方。

《稀缺》

引言 资源稀缺不可怕,就怕有稀缺心态

  • 虽然会使我们集中注意力,但同时也是伴随一生的负担。因为我们总是将关注点放在稀缺上,思想总是围着稀缺打转,所以就没有那么多精力投入人生中的其他事物。
  • 稀缺会降低所有这些带宽的容量,致使我们缺乏洞察力和前瞻性,还会减弱我们的控制力。其影响力非常大。举例来说,贫穷状态会比彻夜不眠对人的认知能力产生的影响更大。产生这个问题的原因并不是穷人的带宽不及富人,而是因为贫困的经历会降低任何一个人的带宽。

第1章 专注的“得”与管窥的“失”

  • 稀缺,会迫使人做出选择。所有抽象的事物都会变得具体起来

带宽负担2——执行控制力

  • 一旦你意识到意志力不过是去学习如何控制注意力和想法时,就能开始提高自身的意志力了
  • 稀缺会形成带宽负担,而这就意味着,稀缺不仅会降低流体智力,而且会降低自我控制力。

余闲心态下的购买行为

  • 人们常常会通过坚持最初的计划来避免选择的负担,实际上就是选择了不去做选择。

1美元的真正价值

  • 节俭之人对金钱怀有一种保证富余的责任感,而穷人则需要随时进行权衡。发生购买行为时,节俭之人会思考的是,该商品的价格是否“优惠”。相比之下,穷人则会思考,为了付出相应的金钱他们要放弃什么。所以说,节俭之人并不需要进行真正的权衡,他们与所有生活在资源充裕条件下的人一样,很难体会到1元钱的真正意义。

机会成本

  • 说穷人所拥有的是一种特殊技能:他们更善于维持当下的生计。他们能让1美元发挥更大的价值,他们是金钱价值方面的专家。这种专业技能会令他们在一定的环境中表现得更加理性,更不容易做出自相矛盾的选择。因为专注,所以拥有专业技能;因为专业,所以有了管窥之见;因为管窥,所以产生了一系列负面后果。

《东京贫困女子》

如果不一直工作就会无家可归

  • 不仅是自治体,那些民间企业也经常会削减那些老实而顺从、从无怨言的人们的工资。像谷村女士这样老实、顺从又文静、得到的信息量很少的女性,率先成了财政困难的公共事业为了维持生存而献出的牺牲品。

这半年间,痛苦仿佛扼住了我的喉咙

  • 在人生经历和日常生活中,人际关系匮乏的人,其判断标准往往会出现偏差。他们在向别人描述自己时总会把自己抬得很高。
  •  

轻松部署 Artifactory(不推荐款)

2025年6月7日 14:50

在 DevOps 实践中,软件包管理是不可或缺的一环。JFrog Artifactory 作为一款强大的制品管理工具,广泛应用于存储和管理二进制文件。本文简单介绍如何部署 Artifactory 开源版。

主要有客户需要部署这个,简单研究一下,上次用这个还是 4 年前了,新版本部署坑有点多,没老版本丝滑。简单说不如 Nexus,有兴趣的可以看看我之前写的私有化部署 Nexus3 镜像源

镜像

镜像有点点大

docker pull releases-docker.jfrog.io/jfrog/artifactory-oss:7.111.8
# 国内
docker pull ccr.ccs.tencentyun.com/k7scn/artifactory-oss:7.111.8

部署

  • docker-compose.yaml
services:
  traefik:
    image: traefik:v3.4
    container_name: traefik
    networks:
      - ysicing-net
    command:
      - "--api=true"
      - "--api.insecure=true"
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.http.address=:80"
      - "--providers.docker.network=ysicing-net"
      - "--log.level=INFO"
      - "--accesslog=true"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik-dashboard.entrypoints=http"
      - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.192.168.23.16.sslip.io`)"
      - "traefik.http.routers.traefik-dashboard.service=dashboard@internal"
      - "traefik.http.routers.traefik-dashboard-api.entrypoints=http"
      - "traefik.http.routers.traefik-dashboard-api.rule=Host(`traefik.192.168.23.16.sslip.io`) && PathPrefix(`/api`)"
      - "traefik.http.routers.traefik-dashboard-api.service=api@internal"
      - "traefik.http.middlewares.gzip.compress=true"
      - "traefik.http.routers.traefik-dashboard.middlewares=gzip@docker"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: always

  artifactorydb:
    image: docker.io/bitnami/postgresql:15
    # image: ccr.ccs.tencentyun.com/k7scn/postgresql:15
    container_name: artifactorydb
    restart: always
    networks:
      - ysicing-net
    volumes:
      - './postgresql:/bitnami/postgresql'
    environment:
      - POSTGRESQL_USERNAME=bn_artifactory
      - POSTGRESQL_DATABASE=bitnami_artifactory
      - POSTGRESQL_PASSWORD=bitnami

  artifactory:
    image: releases-docker.jfrog.io/jfrog/artifactory-oss:7.111.8
    # image: ccr.ccs.tencentyun.com/k7scn/artifactory-oss:7.111.8
    container_name: artifactory
    depends_on:
      - artifactorydb
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.artifactory.rule=Host(`artifactory.192.168.23.16.sslip.io`)"
      - "traefik.http.routers.artifactory.service=artifactory"
      - "traefik.http.services.artifactory.loadbalancer.server.port=8081"
      - "traefik.http.routers.artifactory-ui.service=artifactory-ui"
      - "traefik.http.routers.artifactory-ui.rule=Host(`artifactory-ui.192.168.23.16.sslip.io`)"
      - "traefik.http.services.artifactory-ui.loadbalancer.server.port=8082"
    networks:
      - ysicing-net
    environment:
      - EXTRA_JAVA_OPTIONS=-Dartifactory.home=/var/opt/jfrog/artifactory
      - JF_ROUTER_ENTRYPOINTS_EXTERNALPORT=8082
    # ports:
    #   - 8082:8082 # for router communication
    #   - 8081:8081 # for artifactory communication
    volumes:
      - artifactory_data:/var/opt/jfrog/artifactory
      - /etc/localtime:/etc/localtime:ro
      - ./system.yaml:/opt/jfrog/artifactory/var/etc/system.yaml
    restart: always
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "10"
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000

volumes:
  artifactory_data:
    driver: local

networks:
  ysicing-net:
    name: ysicing-net
    driver: bridge

默认使用 pg 数据库,方便些

创建配置文件 system.yaml

touch system.yaml

创建完配置文件,生成相关配置

shared:
    database:
        type: postgresql
        driver: org.postgresql.Driver
        url: jdbc:postgresql://artifactorydb:5432/bitnami_artifactory
        username: bn_artifactory
        password: bitnami

修改文件权限

chown -R 1030:1030 system.yaml
chmod 644  system.yaml

运行启动

服务非常吃资源,机器配置太低不推荐。

docker compose up -d

访问 Artifactory

地址:artifactory-ui.192.168.23.16.sslip.io
默认的账号密码 | 默认用户名 admin,默认密码 password

总结

没有特殊要求,不推荐。


欢迎关注我的微信公众号,可以看看我郑再打工每天都在折腾什么。

  •  

Typecho实现全站图片懒加载

2025年6月7日 09:42

对于博客网站来说,图片加载慢是导致网站迟迟加载不完的罪魁祸首,本站实现了所有图片懒加载,这里分享下本站是如何实现的,整体过程也比较简单。本站教程基于Typecho,其它博客程序请自行研究,不过区别并不大。

我这里使用的 lazysizes.min.js 来实现懒加载。有必要简单介绍下LazySizes

LazySizes简介

LazySizes是一款终极而轻量级的懒加载库,专门用于处理响应式图片、iframe以及脚本等资源的延迟加载。其核心特性包括:

  • 高性能:旨在提供极高的性能表现。
  • 易于集成:只需在你的网页中加入JS文件,并对需懒加载的元素添加lazyload类即可。
  • 自适应图片:全面支持响应式图片标准,如标签和srcset属性。

主要功能亮点

  • 自动优先级资源管理,区别对待关键和临近视口的元素,提高感知性能。
  • 兼容性广泛,适用于各种前端框架和动态页面技术。
  • 支持未来的响应式图片规范,无需额外配置。
  • 提升SEO,不会影响搜索引擎抓取。

引入LazySizes

github下载地址

其它安装方式

npm install lazysizes --save
yarn add lazysizes --save

使用

使用上也比较简单,在需要使用的类上添加 lazyload 即可,比如我这里

<img class="comment-list-empty-img lazyload" 
     src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     data-src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     alt="<?php echo _t('暂无评论数据'); ?>"
>
  •  
❌