遇到一个项目,用到odoo9,定制化开发后,新建一个数据库,画面都能正常加载,但是导入了客户的产品数据之后的一个数据库却总是画面没法正常加载,看浏览器调试的结果,是"web.assets_common.0.css""web.assets_common.js""web.assets_backend.0.css""web.assets_backend.1.css""web.assets_backend.js"这几个assets里的common.0.css没有加载到浏览器里。
一开始以为某个场合下less编译成css后产生问题来了,看到网上也有人说nodejs的安装目录有中文的话,会产生lessc command not execute的错误,把服务器的node.js和lessc都重新安装过了。还是不行
后来看到有人说,可修改 openerp/addons/base/ir/ir_qweb.py
class LessStylesheetAsset(PreprocessedCSS):
def get_command(self):
try:
if os.name == 'nt':
lessc = find_in_path('lessc.cmd')
else:
lessc = find_in_path('lessc')
except IOError:
lessc = 'lessc'
#unicode 转本地str
import locale
lesspath = get_resource_path('web', 'static', 'lib', 'bootstrap', 'less').encode(locale.getdefaultlocale()[1])
del locale
return [lessc, '-', '--clean-css', '--no-js', '--no-color', '--include-path=%s' % lesspath]
def get_command(self):
try:
if os.name == 'nt':
lessc = find_in_path('lessc.cmd')
else:
lessc = find_in_path('lessc')
except IOError:
lessc = 'lessc'
#unicode 转本地str
import locale
lesspath = get_resource_path('web', 'static', 'lib', 'bootstrap', 'less').encode(locale.getdefaultlocale()[1])
del locale
return [lessc, '-', '--clean-css', '--no-js', '--no-color', '--include-path=%s' % lesspath]
这个方法没有去试,后来看到其实less编译后的css会保存在ir_attachment表里。
把相关的几条记录手动删除之后,问题解决。
"web.assets_common.0.css""web.assets_common.js""web.assets_backend.0.css""web.assets_backend.1.css""web.assets_backend.js"