image - Odoo - 如何管理和更新静态文件

标签 image static odoo

Odoo 中的静态文件

我是 Odoo 的新手,正在为客户开发自定义主题。我已经完成了主题 tutorial尽管该文档中存在许多错误和遗漏(我将在完成后提出拉取请求以更新该文档)。我最近的努力是处理 Odoo 中的静态文件,特别是主题中的图像。

设置

在 Ubuntu 18.04 上运行 Odoo 13.0.20200323 在由 Vagrant 管理并配备 Ansible 的 VirtualBox 中

问题

对静态文件夹中图像文件的更改不会反射(reflect)在网站上。这包括更新网站主题设置中的主题(更新功能似乎会更新其他所有内容)。我更改了图像名称、图像内容,将它们移动到其他文件夹中,但无法弄清楚如何在网站上更新任何更改。我重新启动了服务器,没有任何改变。如上所述更新了主题,不起作用。我能够在前端反射(reflect)任何更改的唯一方法是完全破坏和重建服务器。

问题

  • 我错过了什么?有没有我没有运行的功能来触发 Odoo 更新它从静态文件夹中提供的服务?
  • Odoo 一般如何处理静态文件?对静态文件夹中文件的动态更新似乎在前端没有任何变化。静态文件夹中的文件是否在安装时复制到其他地方,然后从其他位置提供?

  • 理解

    我知道在名为 static 的文件夹中更改图像和其他文件在功能上没有多大意义,这不是我的本意。由于我处于开发阶段,我需要对文件进行更改,例如 SCSS、JS 和图像,并将这些更新反射(reflect)在前端,而不必每次都破坏和重建服务器。需要明确的是,对我在 .xml 文件中注册并与各种 Odoo 包捆绑在一起的 SCSS 和 JS 文件的更改在我对它们进行更改然后在主题管理 View 中更新后端的主题时更新得很好。

    我的愿望是了解 Odoo 一般如何处理静态文件夹中的文件,如何正确更新这些文件,以及如何在开发和发布时管理它们。

    最佳答案

    答案

  • 我已经找到了问题第一部分的答案,即我做错了什么。这似乎是浏览器缓存问题。执行硬重新加载、清空缓存和硬重新加载或在隐身窗口中访问站点时,更改会反射(reflect)到图像中。
  • 据我所知,Odoo 只是直接从静态文件夹中提供文件。如果不是这种情况,请纠正我。

  • 跟进

    有没有人有一个很好的解决方案来处理这样的更改并处理浏览器缓存问题?

    答案:我已经设置了几个使用 gulp-rev 的 gulp 任务。 (很快将替换为 gulp-rev-all) rev-delrev-rewrite通过将哈希附加到文件名来处理缓存破坏。

    我将尝试在代理模式下设置浏览器同步,以查看它如何处理重新加载时对文件的更改。我会报告我的发现!

    更新:到目前为止,浏览器同步运行良好。但是在我想出如何解决下面的问题之前有点无用

    有谁知道如何自动化 Odoo 重建 SCSS、JS 等包?以便在文件更改时可以更新主题并查看结果,而无需在后端手动更新主题以查看结果?

    答案:主要任务是弄清楚如何使实时 HTML/XML 更新工作。这意味着从源代码构建 Odoo,而不是从 Odoo 界面内对后端或前端的主题进行任何更新或更改。在使用 odoo-bin 启动 Odoo 时将选项 --dev xml 传递给 Odoo 允许直接评估 XML 代码,并使实时更新成为可能。但是,当您从 Odoo 中对它们进行任何更新时,这个非常有用(几乎是必要的)功能就会被破坏。我将报告对此的任何解决方法,但现在只要我不在 Odoo 中触及主题(更新主题或使用他们的编辑器对其进行编辑),那么它就很好用。此外,我最初必须绕过将我的 CSS 和 JS 与他们的捆绑器捆绑在一起才能使这些更新实时工作,但现在可能可以返回并重新捆绑它们,因为正在直接评估代码。

    ⭐️样板和教程系列⭐️

    我将完成主题构建的整个过程,然后我将在 GitHub 上共享样​​板和构建工具,并编写和拍摄有关它的系列教程。由于该方面的内置文档直接填充了错误,因此省略了关键信息,并且

    关于image - Odoo - 如何管理和更新静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60823581/

    相关文章:

    python - 如何在 python、odoo 中使用 For 循环正确计数?

    xml - 我无法在 one2many 树中添加字段(在表单 View 中)。为什么?

    css - 在同一行上对齐文本和图像,同时保持相对于容器大小的文本缩进

    ios - 知道照片是自拍还是人像

    image - 没有x服务器的opencv显示图像

    java - 使用静态全局变量或内联变量 - 哪个更有效?

    java - 抽象类中的静态类

    html - 包含相同页眉/页脚的静态 Html 页面

    javascript - Odoo 表单中的表单小部件按钮

    image - 使用具有许可许可的开源库转换原始图像