javascript - 包括页面特定 Assets

标签 javascript grails asset-pipeline

使用 Grails Assets 管道插件,我试图找出在页面上包含 Assets (javascript) 的最佳方法,而不是将它们编译到 application.js 文件中。目前,这就是我正在做的事情......

在我的布局文件的底部:

<g:set var="workflow" value="${pageProperty(name: 'meta.workflow')}"/>
<asset:javascript src="application.js"/>
<g:if test="${workflow == 'storeAdmin'}">
  <asset:javascript src="store/script.js"/>
</g:if>

在views/store/index.gsp header 中:

<meta name="workflow" content="storeAdmin" />

虽然这有效,但感觉就像是黑客攻击。我必须这样做的原因是,如果我只是尝试将 Assets 包含在 View 本身中,而不是布局中,它总是在 application.js 之前渲染,这意味着该脚本中依赖于全局代码的任何内容将失败;例如需要 jQuery 的代码。

最佳答案

我通常使用一种约定来命名页面特定的 javascript 资源,以反射(reflect) Controller 和操作的名称。使用这些和 <asset:assetPathExists>标签我可以将以下内容添加到我的布局中:

<asset:assetPathExists src="${params?.controller ?: 'home'}_${params?.action ?: 'index'}.js">
  <asset:javascript src="${params?.controller ?: 'home'}_${params?.action ?: 'index'}.js" />
</asset:assetPathExists>

关于javascript - 包括页面特定 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502669/

相关文章:

javascript - node express请求调用里面get

grails - 安装Grails Drools插件时涉及的手动步骤

grails - 如何检查groovy的哪个版本与grails的哪个版本

ruby-on-rails - 佣金 Assets :precompile and assets:precompile:all?有什么区别

javascript - React获取div元素大小不正确

javascript - CSS `Position: Fixed` 不在滚动条上移动

Javascript选择div并更改里面的href

grails - 从 .js 文件创建指向资源的链接

ruby-on-rails - Rails 3.1 Assets - 开发中的奇怪服务

ruby-on-rails-3.1 - Capistrano 在 Rails 3.1 上部署/ Assets 失败