如何在Grails中包含jquery.js?

时间:2012-01-21 21:21:53

标签: jquery grails grails-2.0

我有一个使用grails create-app创建的Grails 2.0.0项目。在我的HTML和GSP文件中,我正在尝试包含jquery.js。我已经尝试了以下所有方法但没有成功:

<script type="text/javascript" src="jquery/jquery-1.7.1.js"></script>
<script type="text/javascript" src="jquery/jquery.js"></script>
<g:javascript library="jquery"/>

前两个<script>代码会导致404 Not Found(使用Firebug验证)。 <g:javascript>标记导致不包含任何内容(使用查看源进行验证)。

在我的Grails应用程序的主页上,它表明安装了jquery 1.7.1(在“INSTALLED PLUGINS”下)。

Grails包含jquery .js文件的正确方法是什么?

跟进: .GSP文件:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
  <head>
    <title>Test</title>
    <g:javascript library="jquery/jquery"/>
  </head>
  <body>
    <h1>Test</h1>
  </body>
</html>

以下HTML源代码中的结果:

<html>
  <head>
    <title>Test</title>

  </head>
  <body>
    <h1>Test</h1>
  </body>
</html>

注意缺少jquery.js。

后续行动2:

我正在使用grails create-app创建我的应用:

13:56:40 ~/grailsDev $ grails create-app helloworld
| Created Grails Application at /Users/steve/grailsDev/helloworld
13:56:57 ~/grailsDev $ cd helloworld/
13:57:06 ~/grailsDev/helloworld $ ls -al web-app/js
total 8
drwxr-xr-x  3 steve  staff  102 Jan 21 13:56 .
drwxr-xr-x  7 steve  staff  238 Dec 15 08:04 ..
-rw-r--r--  1 steve  staff  183 Dec 14 22:56 application.js
13:57:23 ~/grailsDev/helloworld $ grails -version

Grails version: 2.0.0

10 个答案:

答案 0 :(得分:27)

显然<r:layoutResources/>需要包含在<head>中(<q:javascript library='jquery' />之后)。以下实际上有效:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
  <head>
    <title>Simple GSP page</title>
    <g:javascript library='jquery' />
    <r:layoutResources/>
  </head>
  <body>
    Place your content here
  </body>
</html>

答案 1 :(得分:5)

默认情况下,jquery插件安装在2.0中 - 请参阅grails-app/conf/BuildConfig.groovy。要在GSP中使用jquery.js,只需添加以下行:

<g:javascript library='jquery' />

答案 2 :(得分:5)

Steve安装Jquery插件后通过grails install-plugin jquery你必须执行另一个grails命令来下载应用程序中的jquery文件

grails installJQuery

此目标在web-app / js / jquery /

下下载并安装jquery-1.7.1.js和jquery-1.7.1.min.js

答案 3 :(得分:4)

在grails 2.x中你也可以这样做:

grails.resources.modules = {
    core {
        dependsOn 'jquery, jquery-ui'
    }
}
Config.groovy

中的

然后在您的GSP中,只需将以下内容放在HEAD元素中:

<r:require module="core"/>

优点是你可以指定其他CSS / JS文件来依赖它,使它在GSP中变得漂亮和干净。这也是您可以覆盖jQuery / jQuery-UI版本的地方。

答案 4 :(得分:4)

根据2015年9月18日的当前文档 - http://grails.org/plugin/jquery(Grails版本:1.3&gt; *)


安装

要安装jQuery插件,请从项目的根文件夹中输入以下命令:

grails install-plugin jquery

目标:

grails installJQuery
  • 此目标在web-app / js / jquery /
  • 下载并安装jquery-1.4.2.js和jquery-1.4.2.min.js

完整的jQuery发行版下载并安装在项目的/ web-app / js / jQuery文件夹下。


用法

Ajax通过jQuery

让Grails的自适应AJAX支持适应jQuery(而不是默认的Prototype,或其他选择,如YUI或Dojo):

自Grails 1.2:

将此行添加到布局文件

<g:javascript library="jquery" plugin="jquery"/>

以及grails-app / conf / config.groovy

的以下内容
grails.views.javascript.library="jquery"

或者您可以使用:

<g:javascript library="jquery" />

(没有plugin =“jquery”)但你需要调用grails installJQuery目标(参见安装选项卡)

答案 5 :(得分:3)

我在icodeya上看到了一个很好的教程。 http://www.icodeya.com/2012/09/grails-different-ways-to-import.html

您可以在gsp中执行此操作:

<g:javascript src="myscript.js"/ >

您可以在Config.groovy中执行此操作:

grails.resources.modules = {
core{
resource url:'/js/jQuery.js' 
} 
myScript { 
resource url:'/js/myScript.js' 
dependsOn 'core' 
}
}

然后,在你的gsp中,你可以附上这个:

<r:require module="myScript" />

答案 6 :(得分:0)

<g:javascript library="jquery/jquery"/>

答案 7 :(得分:0)

我发现(来自JQuery插件页面)除了使用<g:javascript library="jquery"/>标签之外,我还必须明确添加插件标签以使标签看起来像:

  

<g:javascript library="jquery" plugin="jquery"/>

知道为什么我必须使用插件属性吗?

答案 8 :(得分:0)

目前,在2015年,您只需将runtime ":jquery:1.11.1"添加到BuildConfig.groovy即可。

答案 9 :(得分:0)

Grails 2.3 的更新 这可能有助于解决jQuery的配置问题,因此可以从gsp页面获取它。

  1. 首先,如果您运行grails install-plugin jquery命令,它将失败并显示'install-plugin'过时消息: enter image description here
  2. 所以很有可能你已经在这样的BuildConfig.groovy中配置了它(注意是运行时,而不是编译):

    plugins {
        // ... some other plugins here ...
        runtime ":jquery:1:11:1"
    }
    
    1. 如果您使用的是Eclipse,请执行文件搜索jquery,看看您是否已经拥有这些文件: enter image description here

    2. 确认您的js目录不为空,它位于web-app目录中。如果js没有文件或目录,那么只需从第2步中的内容中复制它们: enter image description here

    3. 如前所述,这两行的组合似乎有用(位于gsp页面的顶部):

    4. enter image description here

      如果jQuery不是第一个加载的javascript库,则可能会遇到问题。检查layouts/main.gsp文件(如果有)。您可能需要在所有页面中添加jquery,以便它位于html源代码的最顶层。

      希望有所帮助。

      注意:在此帖子发布时(2015年4月)Grails 3.0已经发布,它似乎与Grails 2.X项目的配置方式不兼容。希望能够更好地记录以避免2.X的问题。