我使用布局main.gsp
渲染我的观点。
在main.gsp
中,我指定了我用于JavaScript的清单文件:
<asset:javascript src="application.js"/>
在我的asset-pipeline清单文件中,我有大约20个脚本。有些用于某些视图,有些则不用。但是当加载页面时,所有脚本都被加载。
我非常喜欢资产管道。它使事情保持清洁和易于管理。
但是我想知道是否可以进行配置更改,因此只加载了视图所需的脚本。可能基于页面标题或<meta>
标签?
答案 0 :(得分:1)
正如我在评论中指出的那样,资产管道中没有任何配置来处理这个问题,但如果您的要求足够简单,您可以轻松完成此任务。
例如,如果您的要求是&#34;某些控制器及其视图将具有特定清单,而其他控制器及其视图将默认为主清单。&#34;你可以在你的布局中做这样的事情:
<g:set var="specificAssetExists" val="${false}" />
<g:set var="specificAsset" val="${params.controller}_${params?.action ?: 'index'}.js" />
<asset:assetPathExists src="js/${specificAsset}">
<g:set var="specificAssetExists" val="${true}" />
</asset:assetPathExists>
<g:if test="${specificAssetExists}">
<asset:javascript src="${specificAsset}"/>
</g:if>
<g:else>
<asset:javascript src="application.js"/>
</g:else>
以上假设您将使用controllerName_actionName.js
命名控制器/操作特定的清单文件。如果不同,您也可以调整上面的代码以满足您的需求。