按页面管理CSS资产(Odoo)

时间:2017-02-23 15:52:15

标签: openerp odoo-8 odoo-9 odoo-10

将css / js资产合并到Odoo网站的最佳方法是什么?资源只为特定网页加载?

在示例和文档中,他们谈到将您的资产转储到Odoo的website.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纳入Odoo的前端资产提出建议,我会很感激。

1 个答案:

答案 0 :(得分:0)

你可以做的是插入一个:

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

到您希望应用特定css / js的模板。有关具体示例,请参阅addons/website_google_map/views/google_map_templates.xml

您的head标记的内容将插入到将为该模板呈现的最终HTML的head标记内。

由于它似乎是直截了当的并且被框架本身使用,所以我自己使用它并没有问题到目前为止。据我所知,您还可以创建一个javascript小部件,它将仅在您的模板上运行,将应用特定的CSS。但上述解决方案对我来说似乎更清晰。