• 通过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 报表内,有如下内容
     

    ...

    ....
    因服务器使用内网ip 无法访问其被映射的公网ip, 导致在服务器上无法访问css , 也就无法生成pdf
     
    相关源码
    文件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')
     
     
     
    我碰到的问题其表象与其不一致,就是点击打印后一直不动,直到超时时间过了,然后报一个错。
    但是我通过上述的解决方案也解决了我的问题。今天在此记录一下。
  • 相关阅读:
    洛谷1026 统计单词个数
    洛谷1381 单词背诵
    Manacher(hdu3068最长回文)
    洛谷P1078 文化之旅
    HDU1269 迷宫城堡
    codevs1020 孪生蜘蛛
    洛谷P1027 Car的旅行路线
    楼房 洛谷1382 && codevs2995
    Picture poj1177
    排列组合
  • 原文地址:https://www.cnblogs.com/kxxx/p/13111717.html
Copyright © 2020-2023  润新知