从CDN加载资源,如JQuery和JQuery UI

时间:2012-02-19 17:51:59

标签: jquery grails resources cdn

我正在使用grails资源1.1.6并且我能够从外部主机加载库,例如:

modules = {

    jquery_cdn {
        resource(disposition: "head", url:'js/jquery.mobile-1.7.1.js', linkOverride:'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js')
    }
[..]
}

Hoewever,只要我在这里添加jquery-ui,它就会停止工作并从当前主机解析文件。

modules = {
    jquery_cdn {
        resource(disposition: "head", url:'js/jquery.mobile-1.7.1.js', linkOverride:'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js')
        resource(disposition: "head", url:'js/something', linkOverride:'http://anything')
    }
[..]
}

这导致:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript" ></script>
<script src="/static/XMKHDE4MFb89NXoDjkyRQnfxc1eyN63e6j43EEfPshE.js" type="text/javascript" ></script>

我到底做错了什么?

3 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

modules = {
    ...
    streetmap {
        resource url: 'http://www.openlayers.org/api/OpenLayers.js', disposition: 'head'
        resource url:'js/streetmap.js'
    }
    ...
}

其中js / streetmap.js包含我的附加功能

答案 1 :(得分:1)

您可能希望使用覆盖闭包来重新定义现有资源。 jquery ui使用键“jquery”作为依赖。要“全局”覆盖此关键用途:

def jqver = org.codehaus.groovy.grails.plugins.jquery.JQueryConfig.SHIPPED_VERSION

// ...

// setup cdn as overrite for jquery libs
overrides {
    jquery {
        resource id:'js', url: "http://ajax.googleapis.com/ajax/libs/jquery/${jqver}/jquery.min.js",
                disposition:'head', nominify: true
    }

    'jquery-ui' {
        resource id:'js', url: "http://ajax.googleapis.com/ajax/libs/jqueryui/${jqver}/jquery-ui.min.js",
                disposition:'head', nominify: true
    }
}

答案 2 :(得分:-1)

你可能想看看这个: http://code.google.com/apis/libraries/devguide.html

您可以使用此加载jQuery和jQuery-UI插件。