-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
例行检查
- 我已确认有类似 issue 问答中的图片无法显示 #5426 ,但未解决
- 我已完整查看过项目 README,以及项目文档
- 我使用了自己的 key,并确认我的 key 是可正常使用的
- 我理解并愿意跟进此 issue,协助测试和提供反馈
- 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
你的版本
- 公有云版本
- 私有部署版本, 具体版本号: V4.12.0
问题描述, 日志截图,配置文件等
在配置了二级路由的情况下,知识库检索出来的图片地址拼接异常,对话框内无法正常展示图片
复现步骤
- 环境配置
FE_DOMAIN=http://localhost:3000
FILE_DOMAIN=http://localhost:3000
NEXT_PUBLIC_BASE_URL=/test
- 用带有图片的word文档上传知识库
- 配置一个应用让AI去查寻刚刚的导入的知识库内容


尝试修复
经调试,发现是位于packages\service\common\file\image\utils.ts下的addEndpointToImageUrl方法在拼接图片路径时没有考虑二级路由
修改如下就修复了:
// 对文本中的图片路径修改为完整的访问路径
export const addEndpointToImageUrl = (text: string) => {
const baseURL = process.env.FE_DOMAIN;
const subRoute = process.env.NEXT_PUBLIC_BASE_URL || '';
if (!baseURL) return text;
const regex = new RegExp(
`(?<!https?:\\/\\/[^\\s]*)(?:${subRoute}\\/api\\/system\\/img\\/[^\\s.]*\\.[^\\s]*)`,
'g'
);
// 匹配 ${subRoute}/api/system/img/xxx.xx 的图片链接,并追加 baseURL
return text.replace(regex, (match) => {
// addLog.debug(`--->img match: ${match}`);
// addLog.debug(`--->img replace: ${baseURL}${match}`);
return `${baseURL}${match}`;
});
};
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working