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

17

我有几个自己编写的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个回答

23

你应该不要使用<g:javascript library="myLib" />,因为它是用来实现AJAX调用库(scriptaculous、dojo、yahoo、jquery)无关的。请参见grails javascript。相反,使用<g:javascript src="myLib.js" />


13
使用JS文件的路径为:web-app/js/myLib.js,在你的布局(layout)中添加<g:javascript library="myLib" />应该就可以了。

6
下面这句话是错误的:“<g:javascript src="myLib" />”,正确的应该是“<g:javascript src="myLib" />”。 - Rick Mangi
5
你忘记在这里加上js了 @RickMangi。正确的方法是:<g:javascript src="myLib.js" /> - chelder
当您构建和部署应用程序时会发生什么?JavaScript 是否会自动打包? - RPDeshaies

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


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 标签。


是的,没错 - 我需要更快地打字 :) - Will Prescott

0

那么在Grails 3中呢? - Abhilash Shajan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接