👁 193 次阅读
你按照 Dify 官方文档把嵌入代码塞进了 WordPress,聊天窗口能弹出来,但一刷新页面会话就丢了——每次都得重新开始对话。更诡异的是,按 F12 打开 Console,里面安安静静,连个报错都没有。
近期我们在 aibsz.com 部署 Dify 时就踩了这个坑,前后排查了好几轮,最终定位到问题。这篇文章把排查思路完整记录下来,希望能帮你少走弯路。
## 问题现象
刷新页面后,Dify 聊天窗口丢失上下文,之前和 AI 的对话历史全部清空。但在同一个页面里不刷新,对话是正常的。
## 排查第一步:确认守护脚本是否加载
Dify 的嵌入式方案依赖一个会话守护脚本(通常叫 `dify_session.js`),它负责把 session ID 存到 localStorage,页面刷新后再读回来,从而实现”刷新不丢会话”。
打开浏览器 Console(F12 → Console),执行:
“`
document.querySelector(‘script[src=”/dify_session.js”]’)
“`
如果返回 `null`,说明**脚本根本没被加载**——这就是根因。
我们当时就是卡在这一步。脚本文件没有部署到服务器上,后面的一切逻辑自然无从谈起。
## 排查第二步:确认 localStorage 是否有 Session ID
紧接着在 Console 执行:
“`
localStorage.getItem(‘dify_sid_’ + location.pathname.split(‘/’).pop())
“`
返回 `null` 进一步印证:守护脚本没跑起来,localStorage 里空空如也,刷新时自然拿不到之前的会话。
## 排查第三步:检查文件是否真的存在
通过 SFTP 或主机文件管理器,进入网站根目录(WordPress 通常在 `/www/wwwroot/你的域名/`),看看 `dify_session.js` 这个文件在不在。
常见的几种情况:
1. **文件根本没传上去**——这是最常见的问题。Dify 后台提供的嵌入代码里引用了 `dify_session.js`,但这个文件需要你手动下载并上传到服务器根目录,很多人漏了这一步。
2. **文件传了,但路径不对**——比如传到了 `/wp-content/themes/你的主题/` 下面,而 ``
3. **验证加载**——刷新页面,Console 执行第一步的检查命令,应该返回一个 `