正在加载中...

IMQI1.COM

跳转到主要内容

欢迎来到 ImQi1

IMQI1.COM

做技术的分享者,生活的摄影师,时事的评论员。
头像

? 为什么要做这个网站

起初建站只是一时兴起,和大多数人一样,我只是想记录下自己学习编程的心路历程和笔记,供自己以后有个参考。刚开始我以为有一个自己的网站是一个小众爱好,直到后来我才发现网络上有很多对此感兴趣的伙伴,于是我开始和他们保持联系。随着时间的增长,我对软件开发有了更浓厚的兴趣,我开始和同学、朋友交流,也有了自己独立开发的想法。在这之前我曾换过多个框架、主题,最终还是觉得自己开发一个主题最有成就感,也最能证明自己真正地学到了东西,所以你能在这里看到这些文字,也能看到我在此记录的其他内容。

我喜欢游山玩水,有自己的爱好,活动。我觉得一切有趣的事情,都会在此记录。

网站架构

高开发效率 + 类型安全 + 全栈统一

Nuxt4 为本站提供了快速、简单、可维护的网站架构

Prisma 提供了类型安全的数据库操作,确保数据的一致性和完整性

本站主题为 ImQi1-CMS,是我制作的第二款主题,从 2026 年 4 月开始制作,至今持续更新中。这一版基于 Nuxt 4 与 TypeScript 前后端同构搭建,配合 Tailwind CSS 构建现代化响应式布局,集成 APlayer 音乐播放器、Fancybox 图片灯箱、实况照片与轮播等富媒体组件,为文章内容提供更丰富的交互体验。系统涵盖文章、评论、友链、订阅、归档与搜索等完整博客功能,配合完善的后台管理,构成一套真正意义上的全栈内容管理系统。

样式选择

保持界面清爽,同时不牺牲功能丰富度
选择字体类型,合理规划布局,注意颜色搭配,添加边框圆角。
字体选择
主要字体
代码字体
JetBrains Mono
图标
Remixicon
调整布局
适当采用圆角、阴影、遮罩、背景,添加动画、交互,让页面尽量简洁的同时不牺牲用户体验。
用小组件丰富文章内容
音乐播放器
视频播放器
代码块
TIP 组件
轮播图
...
用文章的方式记录生活
小记
记录旅游、活动、生活中的小事
图片
小物件,风景,合照,值得记录的瞬间
技术
分享开发中有趣的事情
讨论
理性地发表自己的看法

文章内容

最新发布的内容
生活中的小事、照片,感兴趣的技术等
查看全部文章

小记

记录旅游、活动、生活中的小事
查看更多

技术

分享开发中有趣的事情
查看更多

讨论

理性地发表自己的看法
查看更多

最新图片

最近发布的图片
小物件,风景,合照,值得记录的瞬间
网站架构
样式选择
最新内容
最新图片

阅读更多

订阅文章

来自订阅源的最新内容
查看这些站点位于哪里博客网络
查看更多

更新日志

站点最新更新
查看更多
2026-07-08
新增

自定义本地上传目录 UPLOADS_DIR —— 附件「本地上传」的落盘位置终于可以随心所欲了。设成 .output 之外的绝对路径(如 /data/uploads),从此 bun run build 重建产物再也不会把辛苦上传的图片一并抹掉,文件稳稳地留在独立磁盘上。

新增

上传文件兜底读取路由 /uploads/** —— 当上传目录被挪到 public 之外、Nitro 静态服务够不着时,由这条路由从真实目录把文件读出来,带目录穿越防护与长缓存,前端访问照旧丝滑,不再撞 404。

新增

CSP 开关 security.enableCsp —— 本地用 nuxi preview 验证打包产物时,CSP 老爱拦截音乐直链、地图第三方脚本。现在一键关掉验证、上线前再拧回 true,调试与安全两不误。

优化

运行时资源大一统 —— 把 IP 归属地库、验证码字体、svg2png WASM 统统收进 server/runtime-assets/,打包后落到 .output/server/runtime-assets/。一处存放、整体拷贝/挂载,部署时不用再东奔西找。

优化

Docker 数据库自动初始化 —— 把 init-db.sql 挂到 MySQL 官方镜像的 docker-entrypoint-initdb.d/,首次 docker compose up 即完成建表 + 默认设置 + 示例数据,一步到位,无需再手动跑初始化命令。

优化

容器权限收紧到非 root —— 应用与数据库探活统一改用 nodejs 账户(root 仅存在、不使用),并预建 + chown 好缓存 / 上传 / 会话 / 日志等需写目录,从根上告别 EACCES/ENOENT

优化

导入数据保留本机会话配置 —— 一键导入备份时,sessionStoreType(Session 存储方式)视为本机部署配置予以保留,不被外来备份覆盖,与 users/sessions 被排除的考量一脉相承,导入后登录态与会话行为纹丝不动。

优化

放行图标端点与媒体源 —— 无 Referer 场景下 @nuxt/icon 的按需取图端点不再被 403 误伤,图标加载更稳;CSP 的 media-src 放开 http:,本地/非 HTTPS 媒体直链正常播放。

修复

MySQL 8 连接超时 —— 为 Prisma MariaDB 适配器开启 allowPublicKeyRetrieval,非 TLS 连接下驱动可正常拉取 RSA 公钥完成密码交换,根治「RSA public key is not available client side」导致的连接池取不到连接。

修复

undici 依赖缺失 —— Nitro 对 undici 的 trace 不完整(缺 index.js),令 jsdom 运行时 require("undici") 崩溃。改用构建阶段完整的 undici 覆盖被裁剪的版本,服务端渲染重回正轨。

修复

运行时资源路径漂移 —— 验证码字体 / WASM / IP 库改为以模块自身 URL 为锚点惰性寻址,不再依赖 process.cwd()。无论 node .output/server/index.mjsnuxi preview 还是 Docker,路径都能稳稳命中,字体缺失也会优雅降级而非报错。

删除

移除一次性 db-init 容器 —— 数据库初始化改由 MySQL 镜像原生的首次启动钩子接管后,docker-compose.yml 里那个专用的 init profile 容器功成身退,部署流程更清爽。

其他

运维脚本依赖瘦身 —— 把 ffmpeg-staticcos-nodejs-sdk-v5 等较重的运维依赖挪到 scripts/package.json 单独管理,不再拖累主项目 bun install 与 Docker 构建;首次用相关脚本前跑一次 bun run scripts:install 即可。README 同步补齐说明。

2026 © ImQi1冀ICP备2023007665号