我正在尝试在一个页面上添加一个样式表页面,我有一个名为assets.xml的文件,其中包含所有页面所需的.less文件,我还有一个额外的tabs.less文件,我想添加到从控制器TabsController.py呈现的一页。 我尝试从tabs.xml视图继承网站资产,如下所示:
<odoo>
<template id="main_styles" inherit_id="website.assets_frontend">
<xpath expr="link[last()]" position="after">
<link href="/theme/static/less/tabs.less" rel="stylesheet" type="text/less"/>
</xpath>
</template>
</odoo>
但是由于它继承了网站的主要资产,所以tabs.less会应用于所有页面,这是正常现象。 我还尝试将链接简单地添加到tabs.xml中,但不幸的是,Odoo并未对其进行编译。 所以我的简单问题是如何仅将该页面添加到tabs.xml中?谢谢
编辑: 我也尝试了另一种操作,即从assets.xml调用一个返回当前页面的函数,如下所示:
<t t-set="page" t-value="request and request.env['ir.config_parameter'].current_page()"/>
<link t-if="page.find('tabs') != -1" href="/theme/static/less/tabs.less" rel="stylesheet" type="text/less"/>
但是显然,据我了解,layout.xml在服务器启动时被编译一次?因为我访问的第一页是针对当前会话的其余所有部分和其他会话进行测试的页面,例如:如果我访问/ product,那么即使我访问了所有剩余的测试,也将在“ product”字符串上进行所有测试'/ tabs上的m,导致样式表上的内容无法显示,反之亦然(如果我第一次访问/ tabs,则样式表会显示在每个页面上)