今天早上到公司,访问一下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!
相关推荐
scratch少儿编程逻辑思维游戏源码-上下飞行.zip
kkzhilu_Code-Generate_32152_1745864907745
艺术博客_SpringSpringMVCMybatisShirojQueryBootstrapechartswebuploaderlayui_博客管理图表数据日
scratch少儿编程逻辑思维游戏源码-面具古墓.zip
scratch少儿编程逻辑思维游戏源码-时钟上的冰块.zip
健康监测_Android开发_BLE蓝牙通信_心率数据采集与存储_基于小米手环2的实时心率监测应用_支持后台长时间运行的心率记录工具_可导出SQLite数据库的心率数据分析系统_适
scratch少儿编程逻辑思维游戏源码-梦魇忍者.zip
scratch少儿编程逻辑思维游戏源码-谁建得更高.zip
scratch少儿编程逻辑思维游戏源码-忍者攀登.zip
模拟端 后端 qt前端
数据可视化_Android原生Canvas绘图_3D与非3D柱形图饼图折线图面积图曲线图环形图玫瑰图雷达图散点图气泡图仪表盘刻度盘漏斗图象限图_支持手势缩放滑动交互多图叠加动画效果
scratch少儿编程逻辑思维游戏源码-米克 demo.zip
聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程 系统采用FastAdmin框架独立全新开发,安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一些JD,TB等业务定制,子账号业务逻辑API 非常详细,方便内置对接! IP白名单 业务逻辑 支持IP白名单,黑名单,全局白名单,全局黑名单,保障系统的安全。 接口验签名 采用支付宝RSA加密接口方式,防止篡改数据,导致对账困难,资金大量损失,无故少钱 对接灵活 全部对接参数灵活操作 风控完善 轮询、交易金额、随机金额、最大金额、最小金额等 测试环境: Nginx+PHP7.0+MySQL5.6 网站运行目录:/public 伪静态设置为:thinkphp规则 数据库信息修改路径:/application/database.php
第一步 package.json 下载这三个包 shelljs :执行 shell命令 ssh2-sftp-client 与服务器建立链接(内部有ssh2) chalk 打印彩色输出 第二步 配置脚本命令 deploy 注意后边加上运行环境 执行deploy命令时内部执行了打包动作 「 "deploy": "node deploy/index.js --prod」 第三步准备服务器密码 账号 部署地址 备份地址等等 参考如下 放到 config.js 中 module.exports = [ { id: 0, nodeEnv: "prod", name: "正式环境", domain: "", host: "ip", port: 端口, username: "用户名", password: "密码", path: "/data/www/paccount",//部署路径 removepath: "/data/www/paccount", //删除路径 }, ]; 第四步 如果需要在服务器执行命令 在部署完成后执行 chmodDir 自行决定
scratch少儿编程逻辑思维游戏源码-恐怖矿井.zip
scratch少儿编程逻辑思维游戏源码-爬墙鸟.zip
scratch少儿编程逻辑思维游戏源码-亮灯.zip
scratch少儿编程逻辑思维游戏源码-神秘的游戏.zip
scratch少儿编程逻辑思维游戏源码-矿猫 V4.zip
scratch少儿编程逻辑思维游戏源码-射击游戏构建.zip