2010-01-11 51 views
16

我有一些我自己的Javascript库,它们对我的HTML页面做了一些不错的漂亮处理,我想将它们包含在我的gsp页面中,特别是我的应用程序的着陆页。我试图把它们放在views文件夹中,web-app/js$APP_HOME/scripts,但是当我加载我的index.gsp时,脚本不显示出来。我应该把JavaScript库放在Grails应用程序中?

我也尝试了多种在我的代码,其中没有工作的替代品......

<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的方式,但我真的只是想要一个位置,我可以放置一些可以在我的应用程序中使用的样板代码。考虑到对配置的约定,预期的做法是什么?

回答

12

把你的JS文件放在:web-app/js/myLib.js,把<g:javascript library="myLib" />放在你的布局中应该是我认为你需要的。

+6

见下:这是错误的。 是正确的。 – 2012-09-18 20:18:13

+5

你在@RickMangi忘了js。正确的方法是:'' – chelder 2013-09-13 00:40:41

+0

构建和部署应用程序时会发生什么? JavaScript是否自动打包? – RPDeshaies 2017-10-10 18:27:31

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

+0

是的正是 - 我需要更快地输入:) – 2010-01-11 21:27:36

+0

发布相同的答案,我会赞成你! – Simon 2010-01-11 21:28:52

+0

拍摄,你输入快速 – Simon 2010-01-11 21:29:25

22

你可能不应该使用<g:javascript library="myLib" />,因为这是为了使AJAX调用库(scriptaculous,dojo,yahoo,jquery)无所谓。请参阅grails javascript。请使用<g:javascript src="myLib.js" />

+0

这应该被标记为正确的答案。 – 2017-05-07 17:03:59

0

使用<g:javascript src="myscript.js" />,把你的脚本web-app/js/myscript.js

对于全部细节,并为您的自己的外部脚本例子,在线代码和库看到http://grails.org/doc/latest/ref/Tags/javascript.html

+0

在grails 3中怎么样? – 2017-05-25 08:15:04

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

相关问题