我们正在从 grails 2.5 升级到 3,作为起点,我们正在将资源迁移到资产管道。我已经从表面上阅读了文档,但在测试中遇到了导致问题的场景......资源在页面上被多次包含。
这个问题最好通过例子来说明。testing.js
在 assets/javascripts 中创建文件:
$(document).ready( function() {
alert("test alert");
});
在application.js
(包含在 main.gsp 布局中)添加//= require testing
. 在应用程序的任何页面上添加<asset:javascript src='testing'/>
. 启动页面,警报显示两次。
有没有办法配置资产管道以免这样做?
我假设我遗漏了一些东西,因为这似乎是插件传递依赖的一个大问题(例如,一切都依赖于 jquery)。
添加grails.assets.bundle=true
到Config.groovy
似乎没有帮助。
编辑:使用 jquery 示例添加说明
我们应用程序的 application.js 包含许多其他内容://= require jquery-version.js
我们使用的插件提供的 GSP 还包含 jquery-version.js(在它们自己的资产标签中或通过包含的 js 文件传递),因为这些页面需要 jquery 在页面上。也许我有一些基本的误解,但这似乎是正确的……插件 GSP 应该需要它们的依赖项。
现在,在这个页面上,jquery.js 被多次包含。这似乎是对通过传递模块解决多个包含的资源的退步。