我应该在哪里将javascript库放在Grails应用程序中?

时间:2010-01-11 21:08:34

标签: javascript grails gsp

我有几个自己的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代码,我可以在我的应用程序中使用。考虑到约定优于配置,预期的做法是什么?

5 个答案:

答案 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>

参考:http://grails.org/doc/latest/ref/Tags/javascript.html

答案 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