- 博客(746)
- 收藏
- 关注
原创 Mac 小白必懂:环境变量应该放在 .zshrc、.zshenv 还是别处?
环境变量可以理解成“程序启动时能看到的一组配置”。export GITEE_ACCESS_TOKEN="你的 Gitee 私人令牌"export OPENAI_API_KEY="你的 OpenAI Key"变量名=变量值程序启动时,可以读取这些值。AI 工具读取来调用模型Gitee MCP 读取来访问 Gitee终端通过PATH找到nodegitpythonbrew注意一个关键点:环境变量不是全宇宙共享的。它只会从“父进程”传给“子进程”。
2026-06-24 14:37:29
199
原创 Git 误提交 node_modules 后如何处理
新建前端项目时,第一天就应该确认.gitignoredist/.vite/.cache/.env.env.*!如果看到几百上千个依赖文件、构建产物或缓存文件被加入,那通常就是忽略规则漏了。先停一下,把.gitignore和 Git 索引处理干净,再提交。
2026-06-23 09:20:44
238
原创 Maven SNAPSHOT 父 POM 无法解析问题排查
在 Maven settings.xml 中显式配置内部仓库 profile,并启用 snapshots 下载策略。核心配置是:</</</当父工程或内部依赖版本是这类 SNAPSHOT 版本时,只配置 mirror 可能不够。1. 私服中确实存在该 SNAPSHOT 依赖2. settings.xml 被 Maven 正确读取3. repository 启用了 snapshots4. 本地失败缓存已清理5. IDEA 使用的 Maven 配置与命令行一致。
2026-06-16 14:37:08
276
原创 宝塔 Docker 安装 Ubuntu 及启动失败解决流程
宝塔启动 Ubuntu 容器时,本地没有找到对应的 Ubuntu 镜像,于是 Docker 自动去官方 Docker Hub 拉取镜像,但国内服务器访问 Docker Hub 超时。其中 ubuntu_ise5 是宝塔里当前 Ubuntu 应用的名称,如果你的应用名称不一样,需要改成自己的实际名称。在宝塔面板的 Docker 应用中安装 Ubuntu 容器后,面板显示已经安装成功,但是点击 启动 时出现报错。这时宝塔会优先使用本地镜像,不需要再去访问 Docker 官方仓库,一般就可以正常启动。
2026-06-15 14:47:35
252
原创 JRebel 激活、在线模式与离线模式使用说明
JRebel 是一个 Java 开发辅助工具。它的主要作用是:在开发过程中修改 Java 代码后,尽量减少重新启动应用或重新部署项目的次数,从而节省开发等待时间。需要注意:在 IntelliJ IDEA 中打开:如果许可证区域显示类似下面的信息:说明当前 JRebel 许可证已经激活。其中最关键的是:只要这里显示 ,就说明许可证当前处于有效状态。很多新手容易把下面两个时间混淆:例如:它代表整个 JRebel 许可证的最终到期时间。例如:它代表这台电脑当前申请到的离线使用期限。即使总许可证有效到
2026-06-10 16:16:54
311
原创 macOS 应用强制退出后无法再次启动:根因分析、排查方法与无重启恢复方
UI 主线程一直等待;又在等待 macOS Metal 渲染队列;关键调用包括:这说明 IDEA 最初的卡死发生在JetBrains Runtime 的 Java2D Metal 渲染路径。该参数关闭 Java2D 的 Metal 渲染后端,改用其他渲染路径,用来规避这类 Metal 渲染线程卡死。
2026-06-08 17:36:36
264
原创 Mac 打开软件提示“已损坏,无法打开”的原因和解决方法
Mac 提示软件“已损坏”,很多时候并不是软件真的坏了,而是 macOS 的安全机制 Gatekeeper 认为这个软件来源不可信,或者软件带有 com.apple.quarantine 隔离属性。推荐的解决方式是:如果软件来源可靠,执行后通常就可以正常打开。但如果软件来源不明,不建议随便绕过系统安全检查。安全第一,尽量从官网或可信渠道下载软件。
2026-06-08 15:42:36
403
原创 Linux 服务器临时用户创建与删除教程【让codex 操作服务器】
创建用户 -> 设置密码 -> 分配必要权限 -> 对方登录调试 -> 调试完成后删除用户相比直接提供 root 账号,临时用户更安全、更容易管理,也更适合服务器临时协助场景。如果只是普通查看文件,不建议给 sudo 权限。如果需要重启 Nginx、PHP、修改配置、部署代码等操作,可以临时加入 sudo 权限,用完后立即删除。
2026-06-03 16:53:31
303
原创 Docker Desktop 启动后容器自动启动怎么办?如何关闭容器自启动
Docker 容器是否会自动启动,主要看它的重启策略。如果不希望容器跟随 Docker Desktop 自动启动,执行:bash docker update --restart=no 容器名如果想确认是否成功,执行:bash docker inspect 容器名 --format ‘{{.HostConfig.RestartPolicy.Name}}’输出为:bash no就说明设置成功。以后需要使用该容器时,再手动启动即可:bash docker start 容器名。
2026-06-03 10:21:59
297
原创 Python 虚拟环境 venv 使用说明:第一次创建与后续启动
bash cd ~/Desktop/my-project python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r requirements.txt ./启动服务.sh。bash cd ~/Desktop/my-project source .venv/bin/activate ./启动服务.sh。因为依赖会安装到项目自己的 .venv 文件夹里,而不是安装到 Homebrew 管理的全局 Python 环境里。
2026-05-28 08:38:53
204
原创 Git Tag 使用教程:如何打 Tag、切换 Tag、推送 Tag 和删除 Tag
很多新手看到这个提示会害怕,其实不用怕。你现在正在查看某个固定版本,而不是在分支上继续开发↑ ↑你切换到v1.0.0后,当前代码就是C那个版本。查看历史代码对比问题本地运行旧版本确认某个版本是否有 bug但是不建议直接在 detached HEAD 状态下继续开发。给某一次 commit 做版本标记项目发版生产部署版本回滚生成发布记录Docker 镜像版本对应查看历史稳定版本1. tag 是固定的,后续修改代码不会影响原来的 tag。
2026-05-26 14:06:27
414
原创 常见 AI 模型类型整理:大语言模型、聊天模型、推理模型、Embedding 模型到底有什么区别?
很多人刚开始接触 AI 的时候,最容易混淆几个概念:这些名字看起来都和 AI 有关,但它们的作用完全不一样。如果用一句话概括:有的模型擅长聊天,有的擅长写代码,有的擅长搜索,有的擅长生成图片,有的擅长听声音,有的擅长看视频。这篇文章尽量用小白也能看懂的方式,把常见 AI 模型类型整理清楚。在 AI 里,模型可以简单理解成:比如:所以不同模型的区别,本质上就是:大语言模型,英文叫:简称:它是现在最常见的一类 AI 模型。简单说,大语言模型的核心能力是:比如你输入:它可以生成一篇文章。你输入:它可以给你
2026-05-20 14:56:48
543
原创 iTerm 每次启动都出现红色叉号,是报错了吗?小白也能看懂的解决方法
如果你每次打开 iTerm 都看到红色✘,不要慌。.zshrc里的某条启动命令执行失败了。这次的问题是 Kiro 的 shell 集成配置不够安全。$(zsh会在kiro命令不存在时导致启动失败。then. "$(zsh就可以解决问题。以后配置终端环境时,记住一个原则:不确定某个工具是否一定存在时,先判断命令是否存在,再执行它。这样可以避免很多莫名其妙的终端启动报错。
2026-05-19 15:39:04
352
原创 macOS 安装 Python 包报错:`externally-managed-environment` 怎么解决?
不要慌,这不是 pip 坏了,也不是源的问题。以后无论是做 OpenAI、Gradio、FastAPI、LangChain,还是其他 Python / AI 项目,都建议使用虚拟环境来管理依赖。这样项目之间互不影响,也不会污染系统 Python 环境。
2026-05-19 15:18:30
476
原创 如何在 Linux 服务器上使用 Speedtest 官方 CLI 测试带宽(小白教程)
在日常工作中,我们经常需要测试服务器的带宽和网络速度。很多小白可能只知道,但现在官方推荐使用,更稳定、准确。下面我给大家整理一个从零开始的小白教程,包括。
2026-05-09 11:15:51
340
原创 Claude Code 会话恢复与多窗口使用指南
一篇讲清楚:什么时候该恢复会话、怎么恢复、多个窗口怎么区分、怎么避免聊乱很多人刚开始用 Claude Code,最容易遇到几个问题:这篇就把这些问题一次讲清楚。Claude Code 官方文档明确说明:会话会保存在本地磁盘上,之后可以通过 、 等方式恢复,不需要每次都重新解释上下文。(Claude)在 Claude Code 里,session(会话) 可以理解成一段完整的对话历史。它不只是你发过的话,还包括:官方文档写得很明确:Claude Code 会把这些会话内容自动写入磁盘,这样你之后就可以回到之前
2026-04-20 17:44:11
12537
原创 管理后台使用手册在线预览与首次登录引导弹窗实现
Data;import org@NotBlank(message = "手册标题不能为空") private String title;@NotBlank(message = "手册地址不能为空") private String url;@NotBlank(message = "手册标题不能为空") private String title;@NotBlank(message = "手册地址不能为空") private String url;
2026-04-09 17:06:40
479
原创 芋道项目部署时,前端和门户网站如何通过 Nginx 转发后台接口,而不直接暴露后端地址
芋道项目和门户网站在部署时,不要让前端直接写真实后端地址,更不要写 localhost。前端请求自己的域名接口使用相对路径,例如/admin-api/apiNginx 负责把请求转发到真正的后端服务前端路由通过try_files解决刷新 404后端只监听127.0.0.1,不直接暴露公网前端只认自己的域名,后端由 Nginx 在服务器内部转发。
2026-03-23 08:45:05
830
原创 芋道框架 - API 前缀区分机制
在芋道框架中,门户端和管理后台的 Controller 可能有相同的 ,例如都是 ,但实际访问路径却不同:这是如何实现的?芋道框架通过 Controller 所在包路径 自动为接口添加不同的 URL 前缀。2. 自动配置类 目录结构规范示例对比管理后台 Controller门户端 Controller为什么要这样设计?优点说明安全性Nginx 只需转发 或 ,避免内部接口泄露权限隔离 需要登录且有一定权限, 可以配置为 允许匿名访问代码复用同一
2026-03-17 16:00:25
161
原创 Flowable + Spring 集成踩坑:流程结束监听器查询历史任务为空 & 获取不到审批意见
问题原因解决方案监听器内查询返回空监听器与 Flowable 引擎同处一个事务,历史数据尚在内存缓冲未 flush用推迟到事务提交后执行返回空 MapFlowable 查询历史任务时默认不 JOIN 变量表查询时加遇到 Flowable + Spring 集成问题,首先要搞清楚当前代码处于哪个事务阶段,这是排查此类问题最重要的切入点。
2026-03-17 09:24:41
603
原创 拒绝玄学!彻底搞懂 CSS:图片与文字同行居中的“神仙写法”
利用等于容器高度 +实现对齐。用消除行内块元素间的间隙。适合需要维护老项目或应对变态面试题。拥抱 Flexbox,父元素写上,一切烦恼烟消云散!
2026-03-12 10:13:46
310
原创 彻底搞懂 CSS 中的 Margin 塌陷(折叠)问题:新手踩坑与自救指南
在 CSS 的普通流(Normal Flow)中,垂直方向(top 和 bottom)的相邻块级元素(Block-level elements)的外边距,有时候会合并成一个单一的外边距。这种现象就被称为 Margin 塌陷或外边距折叠。重点笔记塌陷只发生在垂直方向margin-top和),水平方向(左右)的 margin 永远不会塌陷。塌陷只发生在块级元素list-itemtable等)上。
2026-03-11 13:51:57
441
原创 【Git 新手避坑】一招解决 `error: src refspec master does not match any` 报错
当你开开心心地在本地写完代码,准备推送到 Github 或 Gitee 时,敲下熟悉的是不是瞬间有点懵?别慌,这也是无数 Git 新手都会遇到的经典问题。其实解决起来非常简单!
2026-03-10 10:10:56
502
原创 Vite 配置路径别名 `@` 避坑指南:path.resolve 与 fileURLToPath 到底该用哪个?
首选。遇到报错时,不要慌,这是因为你在 ES 模块中使用了过时的 CommonJS 变量,将配置改为方式一即可完美解决。希望这篇文章能帮你少走弯路,愉快地进行 Vite 开发!
2026-03-05 13:52:32
334
原创 PDF 转图片体积过大优化实战(Apache PDFBox)
高 DPI + 原始大尺寸 + PNG 无损 = 单页图片非常大DPI输出尺寸图片格式默认配置往往偏“高清优先”,不适合大规模线上使用。一句话总结:PDF 转图片不优化,迟早磁盘爆炸。
2026-03-04 11:41:01
676
原创 Vue3 + Vite + Nginx 部署后刷新 404 白屏问题完整排查指南
问题原因修复方式刷新 404Nginx 不认识前端路由路径配置刷新白屏(资源 404)相对路径在非根 URL 下解析错误改为使用绝对路径两个问题独立存在,必须同时解决。实际排查时,往往先修了 Nginx 发现还是白屏,再去查资源请求路径,才发现是打包配置的问题。
2026-03-03 16:16:34
672
原创 Ubuntu 安装 PHP 7.4 报错:No package ‘sqlite3‘ found 解决方案(小白版)
解决方法只有一句话:👉安装 libsqlite3-dev + pkg-config然后重新安装 PHP 即可。这类错误看起来吓人,其实都是:缺少 dev 开发库libxxx-dev基本都能解决。
2026-03-03 14:58:16
468
原创 Spring Boot 接口异步化实战:让耗时 AI 接口不再阻塞前端
改造点方式开启 Spring 异步类上加配置专用线程池@Bean注册方法异步化Service 实现方法上加状态管理内聚try 块末尾更新成功状态,catch 中回滚失败状态前端感知进度去掉二次状态更新调用,改为轮询查询接口这种模式适合所有"提交后等待"的耗时场景:AI 生成、文件导出、报表计算等,前端体验从"傻等"变为"实时感知进度"。
2026-03-03 11:37:21
508
原创 Linux 服务器时间不对?宝塔数据库备份还是 UTC?一篇彻底讲清楚(小白必看)
服务器系统时区已切换为 Asia/Shanghai,但宝塔面板、定时任务或 MySQL 在启动时缓存了旧时区,需要重启宝塔并确认数据库时区配置,之后备份时间即可与系统时间保持一致。系统 → 宝塔 → 定时任务 → 容器 → JVM → 数据库哪一层没统一,时间就会乱。
2026-02-05 10:21:26
701
原创 Jenkins 构建日志出现 `[[1;34mINFO[m]` 乱码?原因与完整解决方案(小白必看)
Maven 输出了彩色日志,但 Jenkins 默认不会解析 ANSI 颜色控制码。场景推荐方案日常使用 Jenkins✅ AnsiColor 插件不能装插件✅想要清晰日志✅ 插件方案只要能看关闭颜色即可这种[[1;34mINFO[m]不是 Maven 错误不是 Jenkins 构建失败不是 JDK 问题而是一个显示层面的小坑。一旦理解了 ANSI 转义序列的原理,这类问题以后基本可以一眼识别、秒级解决。
2026-02-03 15:00:20
629
原创 MacBook 上如何正确安装 nvm 和 Node.js(新手必看)
✅ MacBook 安装 Node 的正确流程官方脚本安装 nvm用nvm 安装 Node设置默认 Node 版本不用 Homebrew 装 Node一次配置好,以后几年都不用折腾。
2026-02-02 10:32:04
2420
原创 PDF24 转图片出现“中间横线”的根本原因与终极解决方案(DPI 原理详解)
当你在 PDF24 中遇到:PDF 转图片后页面中间多出一条横线❌ 不是 PDF 坏了❌ 不是工具加水印❌ 不是页面真的有线❌ 不需要先拆页DPI 太低,导致渲染拼接伪影终极解决方案:在 PDF24 中,把 PDF 转图片的 DPI 从144 调整为 300。这是一个典型的“小白最容易踩坑,但一行参数就能解决”的问题。理解了 DPI 背后的渲染原理,你就会发现——很多“看似诡异”的图像问题,其实都只是分辨率不够而已。
2026-01-12 17:05:52
634
原创 Java 后端想学 Vue,又想写浏览器插件?
像写 Vue 项目一样写浏览器插件Vue 学得最扎实,但需要多操点心能干很多事,但不适合一开始学 VueJava 后端想转或补前端不想被前端名词劝退想学 Vue:先选 WXT + Vue3。
2026-01-09 17:49:18
874
原创 Jenkins 打包显示 SUCCESS 但产物不全?日志出现 Killed 的排查与解决(小白版)
Jenkins 构建日志出现Killed,产物不完整但显示 SUCCESS99% 是 Node 构建被 OOM Killer 干掉了放大 Node 内存(NODE_OPTIONS) + 失败即中断(set -e) + 检查 Docker 限制/加 swap。
2026-01-08 11:18:41
722
原创 芋道项目部署:前端写死后端地址 vs Nginx 反向代理
部署这一步,很多人追求“先能跑起来”,然后在生产上留下隐患。你现在主动从“直连后端”升级到“同域反向代理”,其实就是在做正确的工程化。
2026-01-08 10:30:02
1866
原创 宝塔 vs 1Panel 有什么区别?能不能同时安装?
宝塔面板1Panel宝塔适合建站,1Panel 适合跑服务不用 PHP,只跑 Java → 直接选 1Panel一台服务器,只装一个面板。
2026-01-08 09:54:59
1400
1
原创 Java 程序员如何快速上手浏览器插件开发?一篇文章讲透 Chrome Extension
作为一个 Java 程序员,我以前一直有个刻板印象:浏览器插件 = 前端要学 Vue / React / 前端工程化后端学这个没啥用自动采集网页数据批量填表 / 自动上传提升日常工作效率做一些「小而美」的工具浏览器插件,恰恰非常适合 Java 程序员。而且学习成本远低于想象。浏览器插件不是前端项目,而是一个运行在浏览器里的小系统。对 Java 程序员来说,这是能力扩展,而不是转行。插件开发,比你想象中简单得多。自动化提效工具副业产品第二技能👉。
2026-01-07 20:25:17
1079
原创 芋道(Ruoyi-Vue-Pro)对接腾讯云短信:没配回调URL,为啥也能看到发送成功/失败?如何排查?
发送状态= 腾讯云接口同步返回(受理/拒绝),不需要回调也能看到接收状态= 运营商最终投递结果,需要回调 URL 才能自动回写所以你没配回调也能看到“发送成功/失败”,完全正常。
2026-01-06 15:35:09
572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅