在Grails 2.2.4上如何只在特定页面上加载某些JS资源。目前我使用的所有JS文件都加载到所有页面上(即使是我不需要的页面)。
我的ApplicationResources
看起来像这样:
modules = {
application {
dependsOn "jquery", "jquery-ui", "emberjs","emberjsdata", "pjax", "highchart", "filetype", "theme"
resource url:'js/application.js'
resource url:'js/App.js'
resource url:'js/bootstrap-select.js'
resource url:'js/bootstrap-switch.js'
}
request {
dependsOn "application"
resource url: 'js/request.js'
}
lowside {
dependsOn "application"
resource url:'js/lowside.js'
}
pjax {
resource url: 'js/jquery.pjax.js', disposition: "head"
}
highchart {
resource url: 'js/highcharts.js', disposition: "head"
}
filetype {
resource url: 'js/filestyle.js', disposition: "head"
}
emberjs {
dependsOn 'jquery,handlebars'
resource url: 'js/ember-latest-stable.js'
}
handlebars {
resource url: 'js/handlebars-1.0.0-rc.4.js'
}
emberjsdata{
dependsOn 'emberjs'
resource url: 'js/ember-data-latest.js'
}
theme {
resource url: 'js/theme.js'
}
}
在我的布局页面上我这样做:
<r:require module="application"/>
答案 0 :(得分:0)
您配置布局和资源的方式,Grails正在完成它的设计目标。通过在(我假设)仅布局页面中要求application
模块,每个单独的资源将包含在每个呈现的GSP中。你有几个选择来阻止这种情况发生。
head
标记中使用require标记,就像在布局页面中一样。例如,假设您只需要在一个页面上使用高图。该页面可能看起来像这样:
<html>
<head>
...
<r:require module="highchart"/>
</head>
<body>
...
</body>
</html>
layouts/analytics.gsp
,如下所示:
<html>
<head>
...
<r:require modules="common,highchart"/>
<r:layoutResources />
<g:layoutHead/>
</head>
<body>
<g:layoutBody/>
<r:layoutResources/>
</body>
</html>