更新Odoo基础模块(base、mail、web)时出现JSON解析错误
Odoo基础模块更新时JSON解析错误排查方案
问题描述
更新Odoo的base、mail、web等基础模块时,页面加载无法完成且无法正常查看错误信息;手动禁用加载界面后,捕获到以下错误:
UncaughtClientError > SyntaxError Uncaught Error Javascript > JSON.parse: unexpected character at line 1 column 1 of the JSON data SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data jsonrpc/promise</<@https://erp-test-server.ta-da.ua/web/assets/2407-3bfcb27/web.assets_backend.min.js:593:55
环境说明:未修改过任何基础模块,Odoo部署在Ubuntu服务器的Docker容器中。
排查步骤及解决方案
1. 重新编译静态资源
- 进入Docker容器,执行资产编译命令强制更新web模块资源:
./odoo-bin -d 你的数据库名 --load=web --update=web - 若使用Docker Compose,可重启容器时添加编译参数,确保静态资源文件生成完整。
2. 清理多层缓存
- 浏览器端:清除当前域名的缓存、Cookie,切换至无痕模式重新访问系统。
- Odoo服务器端:
- 删除容器内
/var/lib/odoo/sessions目录下的会话文件; - 登录数据库执行SQL清理视图缓存:
DELETE FROM ir_attachment WHERE res_model='ir.ui.view' AND type='binary';
- 删除容器内
3. 校验容器权限与网络
- 确保容器内
/var/lib/odoo目录权限归属odoo用户:chown -R odoo:odoo /var/lib/odoo - 检查容器网络连通性,确认无端口映射或防火墙拦截导致的资源加载异常。
4. 查看服务器日志定位根源
- 查看Docker容器内Odoo详细日志:
docker logs 你的容器名称 - 重点关注模块更新时的Python报错,JSON解析错误通常是后端返回了非JSON格式响应(如HTML错误页面),根据日志提示修复对应问题(如数据库表损坏可执行
./odoo-bin -d 你的数据库名 --repair)。
5. 确认版本一致性
- 检查Docker镜像的Odoo版本是否与数据库版本匹配,版本不兼容会导致模块更新时出现异常响应,需更换对应版本镜像或升级数据库。
内容的提问来源于stack exchange,提问作者Wald Sin
相关产品推荐
相关产品推荐

