通过nginx代理的odoo报表打印时总是超时 问题解决 (转)
转自:http://blog.sina.com.cn/s/blog_53d318170102wvnm.html
背景
将odoo服务器部署在公网上, 服务器没有公网地址, 前端使用nginx提供对外服务的公网ip和tcp端口
qweb-html类型的报表能正常在浏览器上显示,但打印时浏览器上出现如下错误:
Uncaught SyntaxError:
追溯:
SyntaxError: Unexpected token S
at Object.parse (native)
at HTMLIFrameElement. (http://..../web/content/.../web.assets_common.js:3038:379)
at HTMLIFrameElement.jQuery.event.dispatch (http://.../web/content/.../web.assets_common.js:637:451)
at HTMLIFrameElement.elemData.handle (http://.../web/content/.../web.assets_common.js:610:173)
|
qweb-pdf类型的的报表打印时 也出现上述错误。
解决方法
在设置| 技术| 参数| 系统参数 界面中, 增加一个系统参数
参数名称: report.url
取值 :http://127.0.0.1:8069
原因:
odoo生成报表时, 首先生成html格式的报表, 然后使用Wkhtmltopdf将 html转换成pdf
当不设置report.url时,其html 报表内,有如下内容
... .... |
相关源码
文件addon|report|model|report.py
irconfig_obj = self.env['ir.config_parameter'].sudo()
base_url = irconfig_obj.get_param('report.url') or irconfig_obj.get_param('web.base.url')
我碰到的问题其表象与其不一致,就是点击打印后一直不动,直到超时时间过了,然后报一个错。
但是我通过上述的解决方案也解决了我的问题。今天在此记录一下。