`

odoo静态资源无法访问的问题

 
阅读更多

今天早上到公司,访问一下odoo10,发现小图标都没了,看日志,发现大多数的静态资源访问请求都报404,例如:

"GET /web/static/lib/fontawesome/fonts/fontawesome-webfont.ttf?v=4.5.0 HTTP/1.1" 404 -

 去源代码目录下检查,发现这些静态资源都在,相应的目录也有读取权限。怀疑是不是运行中出现什么错误导致该问题,于是重启odoo,但重启后故障依旧。

于是又怀疑是不是缓存问题,于是分两步,第一步是清除浏览器缓存,但清除后不见效;第二步清odoo的session,清除后并重启后还是无效。

于是在“小伙伴们与odoo在一起”群里求助,得到群主jeffery和toby的热心分析。

后来发现一个规律:每次odoo重启后,第一次访问,日志中会报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 37: ordinal not in range(128)

 但接下来访问就不会了,然而资源还是找不到。于是想到以前出现过因目录或文件名中有中文,会导致odoo无法识别而出错的问题。而上周末,我复制了两个addon的zip文件到自定义addon目录下,并且为了直接了解addon的作用,在文件名中写了中文,怀疑可以是这个引起的。于是在addon目录之外新建了个目录用来保存带中文的zip 文件, addon目录下确保无中文。

再次重启odoo并且访问,这次不再报“UnicodeDecodeError”错,打到的登录页面图标也正常了,登录进odoo之后,一切都已恢复。

根据toby的解释:odoo在处理非utf-8的目录名或文件时会出错,而且一旦出错就不再往下执行。并且,toby给出了解决办法:

修改 openerp/tools/osutil.py的walksymlinks方法(odoo8):


 在odoo10中,应该是第38行附近:



 

 

 

再次感谢toby!

 

 

  • 大小: 34.8 KB
  • 大小: 9.4 KB
分享到:
评论

相关推荐

    ODOO基础开发小总结

    ODOO是一个开源的企业资源规划(ERP)和客户关系管理(CRM)平台,旨在提供一套完整的应用解决方案,包括销售、库存、会计、人力资源、制造、项目管理等。ODOO由Python编写,并使用PostgreSQL作为其主要数据库,它具有...

    node-v12.20.1-linux-x64.tar.gz

    在IT行业中,Odoo是一款广泛使用的开源ERP(Enterprise Resource Planning,企业资源规划)系统,它集成了CRM、销售、采购、库存、财务等多种模块,为企业提供了一站式的管理解决方案。Node.js则是JavaScript运行...

    Odoo-14-Project1

    - `static`: CSS、JavaScript和其他静态资源,用于界面美化和交互增强。 - `tests`: 测试文件,用于验证模块的功能和性能。 - `__init__.py`: 表明目录是一个Python包。 - `manifest.ini`或`__openerp__.py`: 描述...

    guias_pma:odoodecomociónde losmodulos de odoo

    1. **模块结构**:Odoo模块通常包含XML文件(用于定义业务逻辑和界面)、Python文件(实现后端逻辑)、JavaScript和CSS文件(用于前端交互和样式),以及可能的图片和其他静态资源。理解这些文件的作用是分解模块的...

    openerp 培训班 模块代码

    总结,OpenERP(Odoo)模块开发涵盖了多种技术,从后端Python模型和SQL约束到前端XML视图和静态资源。熟练掌握这些技术将使您能够为企业的业务需求定制个性化的解决方案。通过持续学习和实践,您可以成为OpenERP...

    Introduction to JavaScript Part 1

    随着互联网的发展,网页不再仅仅是静态的信息展示板。用户期望获得更丰富的互动体验。为此,一种强大的客户端脚本语言——JavaScript应运而生。通过本篇介绍,我们将深入理解JavaScript的基础概念及其在网页开发中的...

Global site tag (gtag.js) - Google Analytics