You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo v16报表CSS加载异常求助(Odoo.sh部署环境)

Odoo.sh v16 批量发票报表CSS随机加载失败问题解决思路

问题描述

部署在Odoo.sh上的Odoo v16数据库,批量发送发票时部分发票CSS会随机加载失败,一段时间后自动恢复。日志追踪发现:

  • 12:05:22时web.report_assets_common.min.css的URL发生切换(从/web/assets/227768-c5247d9/变为/web/assets/227861-45bea67/)
  • URL切换后,请求旧地址返回404,但批量生成PDF过程中系统仍持续调用旧URL,导致部分发票CSS缺失
  • 已设置report.url、web.base.url和web.base.url.freeze系统参数,但问题仍随机出现

相关日志片段:

...
[28/May/2024 12:05:16]
"GET /web/assets/227768-c5247d9/web.report_assets_common.min.css HTTP/1.0" 200 - 4 0.001 0.004
[28/May/2024 12:05:19]
"GET /web/assets/227768-c5247d9/web.report_assets_common.min.css HTTP/1.0" 200 - 4 0.001 0.004
[28/May/2024 12:05:22]
"GET /web/assets/227861-45bea67/web.report_assets_common.min.css HTTP/1.0" 200 - 9 0.004 0.008
[28/May/2024 12:05:22]
"GET /web/assets/227768-c5247d9/web.report_assets_common.min.css HTTP/1.0" 404 - 9 0.007 0.005
...

URL切换时段日志:

[28/May/2024 12:05:19] "POST /web/dataset/call_kw/stock.picking/read HTTP/1.0" 200 - 54 0.030 0.022
[28/May/2024 12:05:19] "POST /web/dataset/call_kw/stock.move/read HTTP/1.0" 200 - 25 0.013 0.020
odoo.addons.base.models.ir_actions_report: The PDF documents 'VF_2024_07050.pdf' are now saved in the database
odoo.addons.base.models.ir_actions_report: The PDF report has been generated for model: account.move, records [86727].
...
odoo.addons.base.models.ir_actions_report: wkhtmltopdf: Exit with code 1 due to network error: ContentNotFoundError
[28/May/2024 12:05:25] "GET /web/assets/227768-c5247d9/web.report_assets_common.min.css HTTP/1.0" 404 - 2 0.002 0.004

解决方案思路

1. 强制固定资产URL(适配Odoo.sh特性)

Odoo.sh的自动部署、资产编译机制可能会触发资产哈希更新,即使设置web.base.url.freeze也可能被覆盖:

  • 在Odoo.sh环境变量中添加ODOO_ASSETS_BASE_URL,设置为固定的资产路径前缀(如https://你的域名.com/web/assets/),跳过自动生成的哈希部分
  • 或在自定义模块中重写报表资产URL生成逻辑,强制使用固定路径而非带哈希的动态地址

2. 调整批量报表并发策略

批量生成PDF时多进程并行处理,可能出现部分进程用旧哈希、部分用新哈希的情况:

  • 限制批量发票处理的并发数,改为串行执行,确保所有PDF生成请求使用同一版本的资产URL
  • 批量处理前手动触发资产预编译,确保生成PDF时资产哈希已稳定

3. 禁用wkhtmltopdf缓存

wkhtmltopdf可能缓存旧资产URL,导致切换后仍请求旧地址:

  • 在报表生成逻辑中添加--no-cache参数,禁用wkhtmltopdf的缓存
  • 自定义报表模板时,直接使用绝对路径引用CSS,不依赖Odoo的动态资产URL

4. 验证Odoo.sh环境配置

  • 确认web.base.url.freeze参数已设为True,且未被Odoo.sh自动部署脚本重置
  • 检查Odoo.sh部署日志,确认问题发生时段是否有自动更新或资产编译操作触发哈希切换

内容的提问来源于stack exchange,提问作者Sven Coeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:40:54