我想从插件中将javascript文件custom.js
包含在我的gsp中。我的主应用程序使用此插件作为依赖项。 custom.js
javascript文件包含一个变量,其值是通过在GString
内执行grails代码获得的。
var root = "${request.contextPath}";
它必须是一个单独的文件,如果我尝试使用<script src="custom.js"></script>
将其包含在我的.gsp文件中,则grails代码不会被执行。如果我使用<g:javascript src="custom.js" />
,它会尝试从插件中获取文件,但无法找到它。该文件实际上在我的主应用程序中。但是试图包含它的代码在插件中。类似于提供自定义Javascript实现的方式。我该怎么做?
答案 0 :(得分:0)
<强>更新强> 考虑this answer,我必须在单独的脚本标记中指定变量的值。如果grails代码位于非.gsp文件中,则不会解释它。
我解决了。我所要做的就是:将contextPath=""
添加到g:javascript
代码
根据关于contextPath属性的标记g:javascript
的文档:
contextPath(可选) - 要使用的上下文路径(相对于 应用上下文路径)。默认为“”或插件的路径 插件视图或模板。
默认为插件的路径。因此,通过将其设置为空字符串,我们告诉它避免来自源的插件路径。以前,它将javascript的路径修改为类似appname/plugins/pluginname/js/custom.js
的路径。现在将contextPath设置为空字符串,它只是创建路径appname/js/cusomt.js