我正在使用Grails 2.0.1中的Resources插件。我遇到的问题是使用r:external指定的JavaScript资源被放置在之前使用r:require或r:external声明的所有其他脚本之后,所有这些都在延迟处置中。目前使用r:external指定的资源正在输出r:external标记的位置输出。
我有一个布局文件,其中包含一个r:require标记来获取一些核心资源:
<html>
<head>
...
<r:require module="core" />
</head>
....
</html>
然后是一个包含另一个r:require标签的GSP,后跟一个r:external标签:
<head>
...
<r:require module="forms" />
<r:external dir="js" file="page-specific-resource.js" /> %{-- specifying disposition="defer" has no effect --}%
....
</head>
...
我的期望是我试图包含的每个JavaScript资源都将在延迟处置中首先输出核心资源,然后输出表单资源,最后输出特定于页面的资源。实际结果是核心和表单资源在延迟处置中按预期输出,但页面特定资源在head中输出,其中放置r:external标记(指定disposition =“defer”似乎没有效果)。
我的期望是不正确还是这是合法的问题?是否有另一种方法来指定特定于页面的资源(我试图避免在资源DSL中声明这些类型的资源)并在所有先前声明的资源之后定位?
答案 0 :(得分:0)
正如Marc Palmer在Grails用户邮件列表(http://grails.1312388.n4.nabble.com/Placement-Of-JS-Resource-Via-lt-r-external-gt-td4506074.html#none)上的回答:
我担心你的期望不正确。
r:external仅用于呈现您调用它的链接。
您需要声明您的依赖项,或将您的r:external放在 页面末尾。
为应用的“功能区域”声明模块是有利可图的。它 意味着你可以根据需要将它们捆绑在一起,或者没有问题 粒度控制和页面不再需要注意这一点。