2025/03/04 更新:建议拉取官方最新的 1.0.0 版本的镜像 GitHub
问题描述
Dify 将聊天应用程序嵌入 Web 时,第一次可以正常使用。刷新 Web 后,聊天程序报告错误:应用程序错误:发生客户端异常(有关详细信息,请参阅浏览器控制台)。
go
Application error: a client-side exception has occurred (see the browser console for more information.
控制台报错信息
php
TypeError: (0 , g.getPrevChatList) is not a function
at page-98fe2eb27f70b868.js:1:1871
at Object.lt [as useMemo] (fd9d1056-014bed05f3bb9932.js:1:46775)
at t.useMemo (2117-facb83e7cbe5e185.js:2:31810)
at y (page-98fe2eb27f70b868.js:1:1811)
at J (page-98fe2eb27f70b868.js:1:18317)
at rE (fd9d1056-014bed05f3bb9932.js:1:40344)
at l$ (fd9d1056-014bed05f3bb9932.js:1:59319)
at iZ (fd9d1056-014bed05f3bb9932.js:1:117926)
at ia (fd9d1056-014bed05f3bb9932.js:1:95165)
at fd9d1056-014bed05f3bb9932.js:1:94987
window.console.error @ 2117-facb83e7cbe5e185.js:1
l_ @ fd9d1056-014bed05f3bb9932.js:1
n.callback @ fd9d1056-014bed05f3bb9932.js:1
nB @ fd9d1056-014bed05f3bb9932.js:1
nV @ fd9d1056-014bed05f3bb9932.js:1
aq @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
a9 @ fd9d1056-014bed05f3bb9932.js:1
aY @ fd9d1056-014bed05f3bb9932.js:1
(anonymous) @ fd9d1056-014bed05f3bb9932.js:1
is @ fd9d1056-014bed05f3bb9932.js:1
nb @ fd9d1056-014bed05f3bb9932.js:1
nw @ fd9d1056-014bed05f3bb9932.js:1
(anonymous) @ fd9d1056-014bed05f3bb9932.js:1Understand this errorAI
解决方案
参考 fix: build failed due to getPrevChatList
no longer exists by xuzuodong · Pull Request #13383 · langgenius/dify · GitHub
github.com/langgenius/...
建议使用方案一
方案一
1. 停止当前运行的 Docker 容器
首先,停止当前运行的 Dify 容器:
bash
cd dify/docker
docker compose down
这将停止所有与 Dify 相关的容器。
2. 更新 docker-compose.yaml
文件
确保 docker-compose.yaml
文件中引用了你刚刚构建的镜像。打开 dify/docker/docker-compose.yaml
,找到 web
服务的配置部分,修改为:
yaml
web:
image: langgenius/dify-web:main # 确保镜像名称和标签与构建时一致
如果镜像标签有变化(如 dify-web:main
),请同步更新。
3. 启动更新后的容器
重新启动 Docker 容器:
bash
cd dify/docker
docker compose -p dify up -d
这将使用更新后的 web
镜像启动容器。
方案二
官方已经更新了 Dify 的 web
部分的源代码,但并未上传到官方 Docker 中,因此我们可以重新构建 Docker 镜像使其生效,可以按照以下步骤操作:
1. 停止当前运行的 Docker 容器
首先,停止当前运行的 Dify 容器:
bash
cd dify/docker
docker compose down
我们需要删除已有的 web 镜像:
bash
docker stop langgenius/dify-web
docker rm langgenius/dify-web
docker rmi langgenius/dify-web:0.15.3
2. 重新构建修改后的镜像
进入 web
目录,重新构建修改后的镜像:
bash
cd dify/web
docker build -t langgenius/dify-web:0.15.3-custom .
-
-t langgenius/dify-web:latest
:指定镜像名称和标签。你可以根据需要修改标签(如v1.0-custom
)。 -
.
:表示使用当前目录下的Dockerfile
进行构建。
3. 更新 docker-compose.yaml
文件
确保 docker-compose.yaml
文件中引用了你刚刚构建的镜像。打开 dify/docker/docker-compose.yaml
,找到 web
服务的配置部分,修改为:
yaml
web:
image: langgenius/dify-web:0.15.3-custom # 确保镜像名称和标签与构建时一致
如果镜像标签有变化(如 v1.0-custom
),请同步更新。
4. 启动更新后的容器
重新启动 Docker 容器:
bash
cd dify/docker
docker compose -p dify up -d
这将使用更新后的 web
镜像启动容器。
5. 验证更新
访问 Dify 的 Web 界面(通常是 http://localhost
或 http://127.0.0.1
),检查修改是否生效。如果需要调试,可以查看日志:
docker logs -f dify-web-1
方案三
你也可以直接修改docker-compose.yaml
文件内容,因为我已经将 docker 镜像推送到 Docker Hub 中了langgenius/dify-web:0.15.3-custom
1. 更新 docker-compose.yaml
文件
确保 docker-compose.yaml
文件中引用了你刚刚构建的镜像。打开 dify/docker/docker-compose.yaml
,找到 web
服务的配置部分,修改为:
yaml
web:
image: yuzhouz/dify-web:0.15.3-custom # 确保镜像名称和标签与构建时一致
如果镜像标签有变化(如 v1.0-custom
),请同步更新。
2. 启动更新后的容器
重新启动 Docker 容器:
bash
cd dify/docker
docker compose -p dify up -d
这将使用更新后的 web
镜像启动容器。