如何在 Grails 3 中更改每个插件的编解码器?

Posted

技术标签:

【中文标题】如何在 Grails 3 中更改每个插件的编解码器?【英文标题】:How to change per-plugin codec in Grails 3? 【发布时间】:2017-12-09 15:22:24 【问题描述】:

虽然我知道这不是“最佳实践”,但我有很多旧插件要升级到 Grails 3,我需要将它们的 GSP 编码设置回旧的默认值“无”(因为所有已经在需要的地方进行了编码,我们希望在其他地方没有编码的数据。)不幸的是,这似乎不适用于文档。

Grails 3.2.11 文档说:

每个插件编码

Grails 还具有控制基于每个插件使用的编解码器的能力。例如,如果您安装了一个名为 foo 的插件,那么在 application.groovy 中放置以下配置将仅禁用 foo 插件的编码

foo.grails.views.gsp.codecs.expression = "none"

这不起作用,使用 Grails 3.2.11。编码仍然是“html”。

我尝试过的其他方法也不起作用:

只需将插件的 application.yml 更改为默认值(这对我来说似乎是理想的,并且是我最初期望控制插件编码的方式) runtime.groovy 中的同一行 同一行,在插件的 plugin.groovy 中 应用程序和插件的 application.yml 中的前缀概念相同 根据How can I exclude a plugin from grails default gsp encoding? 中的建议进行更改

我非常愿意把它写成一个 Grails 错误,但我想我会先在这里问一下,以防其他人已经解决了这个问题!

提前致谢!

【问题讨论】:

今天打开github.com/grails/grails-core/issues/10722。 【参考方案1】:

请参阅链接的 grails 问题以获取答案;简短的版本是:

所有编解码器必须有效,否则由于编解码器处理中抛出异常而使用默认值 插件应该在发布前清理干净,否则预编译的 gsps 可能仍然使用以前的编解码器

【讨论】:

以上是关于如何在 Grails 3 中更改每个插件的编解码器?的主要内容,如果未能解决你的问题,请参考以下文章

Grails 或 Play 如何检测更改和热重载类?

如何更改生成表中的列顺序(grails 约束不适用于 mongodb 插件)

C对ASN.1的编解码环境搭建

如何在 Grails 3 中更改应用程序名称?

如何设置 grails 插件的安装位置?

YouTube“书呆子统计”如何运作。或者如何从 JavaScript 获取正在播放的视频的编解码器信息