Openerp 按页面管理CSS资产(Odoo)

Openerp 按页面管理CSS资产(Odoo),openerp,odoo-8,odoo-9,odoo-10,Openerp,Odoo 8,Odoo 9,Odoo 10,将css/js资产合并到Odoo的网站中的最佳方式是什么?这些资产只针对特定页面加载 在示例和文档中,他们提到将您的资产转储到Odoo的网站。assets_frontend,我这样做,但是在某些情况下,我希望使用在线找到的网站模板,我真的不想花时间查看css类并确定冲突 如果页面本身失败,那是一回事,但如果它破坏了我现有页面上的所有css,那又是另一回事 我在考虑使用这样的技术 t-if=“request.httprequest.path.startswith('/page/path/')” 使

将css/js资产合并到Odoo的网站中的最佳方式是什么?这些资产只针对特定页面加载

在示例和文档中,他们提到将您的资产转储到Odoo的
网站。assets_frontend
,我这样做,但是在某些情况下,我希望使用在线找到的网站模板,我真的不想花时间查看css类并确定冲突

如果页面本身失败,那是一回事,但如果它破坏了我现有页面上的所有css,那又是另一回事

我在考虑使用这样的技术

t-if=“request.httprequest.path.startswith('/page/path/')”

使用if语句确定是否将css合并到网站资产中

<odoo>
    <data>
        <template id="page_style" name="Page Style" inherit_id="website.assets_frontend">
            <xpath expr="link[last()]" position="after">
                <t t-if="request.httprequest.path.startswith('/page/path/')">
                    <link href="/addon_name/path/to/css/style.css" rel="stylesheet" type="text/css"/>
                </t>
            </xpath>
        </template>
    </data> 
</odoo>


无论如何,如果有人想就如何将css以一种包含的方式整合到奥多的前端资产中提出建议,我将不胜感激

实际上,您可以插入:

<head>
      <link href="/addon_name/path/to/css/style.css" rel="stylesheet" type="text/css"/>
</head>

要应用特定css/js的模板。有关特定示例,请参见
插件/website\u谷歌地图/views/google\u地图模板.xml

头标记的内容将插入最终HTML的头标记中,最终HTML将为该模板呈现


由于它似乎是严格的,并且由框架本身使用,所以我自己使用它,到目前为止没有任何问题。据我所知,您还可以创建一个javascript小部件,该小部件将仅在您的模板上运行,并应用特定的css。但是上面的解决方案对我来说似乎更干净。

你能用js资产做同样的事情吗?那么你是说所有的
资产将被合并并在一个head标签中提供给客户?乔治,我是在前端模板上这样做的。将
添加到我的模板中。奇怪的是,
标记被移除,css链接被放置在我的
元素的顶部。现在,从技术上讲,这满足了我的需要,因为我的页面确实具有适当的css,但是这不会将css添加到
元素,也不会将css添加到前端资产。它不在
元素中这一事实并不是什么大问题,但是资产包通过最小化请求来提高速度。您是否可以检查css以查看它是否被放置在
标记中,如果是,请提供一个工作示例。我的模板附在一个
中,如果在标题中找不到,请修改您的答案,我会将其标记为正确。由于没有其他评论,我会认为我正在做的或你建议的是唯一明智的方法,或者没有人关心。