【问题标题】:Placement Of JS Resource Via <r:external />通过 <r:external /> 放置 JS 资源
【发布时间】:2012-03-23 19:39:20
【问题描述】:

我正在使用 Grails 2.0.1 中的资源插件。我遇到的问题是使用 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 中声明这些类型的资源)并在所有先前声明的资源之后定位?

【问题讨论】:

    标签: grails grails-plugin grails-2.0


    【解决方案1】:

    正如 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 放在 页尾。

    为应用的“功能区域”声明模块是有利可图的。它 意味着您也可以根据需要将它们捆绑在一起,或者很好 粒度控制,页面不再需要注意这一点。

    【讨论】:

      猜你喜欢
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      相关资源
      最近更新 更多