1

我在 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>

然后是一个 GSP,其中包含另一个 r:require 标记,后跟一个 r:external 标记:

<head>
    ...
    <r:require module="forms" />
    <r:external dir="js" file="page-specific-resource.js" /> %{-- specifying disposition="defer" has no effect --}%
    ....
</head>
...

我的期望是,我尝试包含的每个 JavaScript 资源都将在延迟配置中输出,首先是核心资源,其次是表单资源,最后是特定于页面的资源。实际结果是在deferred disposition中按预期输出core和forms资源,但是在head中输出page-specific资源,这里放了r:external标签(指定disposition="defer"好像没有效果)。

我的期望是不正确的还是这是一个合法的问题?是否有另一种方法来指定特定于页面的资源(我试图避免在资源 DSL 中声明这些类型的资源)并在所有先前声明的资源之后定位?

4

1 回答 1

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 放在页面末尾。

为应用程序的“功能区域”声明模块是有利可图的。这意味着如果需要,您还可以将它们捆绑在一起,或者进行细粒度控制,并且页面不再需要意识到这一点。

于 2012-03-26T20:06:45.313 回答