虽然我知道这不是"最佳实践",但我有很多遗留插件正在升级到Grails 3,我需要将它们的GSP编码设置回旧的默认值"none"(因为所有内容都已经在需要的地方进行了编码,我们希望在其他地方使用非编码数据。 不幸的是,根据文档,这似乎不起作用。
圣杯 3.2.11 文档说:
每个插件编码
Grails还具有控制每个插件使用的编解码器的能力。例如,如果您安装了一个名为foo的插件,那么在您的应用程序中放置以下配置.groovy将仅禁用foo插件的编码
foo.grails.views.gsp.codecs.expression = "none">
这在使用Grails 3.2.11时不起作用。 编码仍然是"html"。
我尝试过的其他事情,也没有奏效:
- 只需从默认值更改插件的 application.yml(这对我来说似乎是理想的,并且是我最初期望的控制插件编码(
- 同一行,在运行时.groovy
- 同一行,在插件的 plugin.groovy 中 与
- 前缀相同的概念,在应用程序和插件的应用程序中.yml
- 如何从 grails 默认 gsp 编码中排除插件中的建议的更改?
我完全愿意把它写成一个 Grails 错误,但我想我会先在这里问,以防其他人已经解决了这个问题!
提前感谢!
有关答案,请参阅链接的 grails 问题;简短的版本是:
- 所有编解码器都必须有效,或者由于编解码器处理中引发的异常而使用默认值
- 插件应在发布前进行清理,否则预编译的 GSP 可能仍使用以前的编解码器