首页 文章

按页面管理CSS资产(Odoo)

提问于
浏览
0

将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

    你能做的是插入一个:

    <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 . 但上述解决方案对我来说似乎更清晰 .

相关问题