我有几个自己的Javascript库,可以很好地完善我的HTML页面,我希望将它们包含在我的gsp页面中,特别是我的应用程序的登录页面。我已经尝试将它们放在views
文件夹和web-app/js
以及$APP_HOME/scripts
中,但是当我加载index.gsp时,脚本就不显示了。
我也在我的代码中尝试了各种替代方案,但没有任何工作......
<script src="mylib.js" type="text/javascript"></script>
<script src="js/mylib.js" type="text/javascript"></script>
<script src="scripts/mylib.js" type="text/javascript"></script>
我确信有一种聪明的grails方式可以动态执行此操作,但我真的只想要一个位置,我可以在其中放置一些样板JavaScript代码,我可以在我的应用程序中使用。考虑到约定优于配置,预期的做法是什么?
答案 0 :(得分:23)
你可能不应该使用<g:javascript library="myLib" />
,因为它意味着用来使AJAX调用库(scriptaculous,dojo,yahoo,jquery)无动于衷。见grails javascript。而是使用<g:javascript src="myLib.js" />
。
答案 1 :(得分:13)
将您的JS文件放在:web-app/js/myLib.js
,将<g:javascript library="myLib" />
放在您的布局中,我认为应该是您需要的。
答案 2 :(得分:1)
有两种方法可以包含JS文件和JS库,如scriptaculous
// actually imports '/app/js/myscript.js'
<g:javascript src="myscript.js" />
// imports all the necessary js for the scriptaculous library
<g:javascript library="scriptaculous" />
<g:javascript>alert('hello')</g:javascript>
答案 3 :(得分:0)
我想我找到了答案......
如果我在我的gsp中使用此标记(而不是简单的javascript引用)
<g:javascript library="mylib" />
然后,当我查看生成的页面源时,它引用
<script type="text/javascript" src="/myapp/js/mylib.js"></script>
这对应于文件夹web-app/js
,所以我将脚本库放在那里,它工作正常。我突破了以下方面:a)将index.html重命名为index.gsp,b)使用g:javascript
标记。
答案 4 :(得分:0)
使用<g:javascript src="myscript.js" />
并将您的脚本放在web-app/js/myscript.js
有关您自己的外部脚本的完整详细信息和示例,内联代码和库请参阅http://grails.org/doc/latest/ref/Tags/javascript.html。