将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的前端资产提出建议,我会很感激。
答案 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。但上述解决方案对我来说似乎更清晰。