【问题标题】:How to actually use JAWR with a library from a CDN如何通过 CDN 中的库实际使用 JAWR
【发布时间】:2013-02-05 20:41:47
【问题描述】:

我们使用 JAWR 来提供内容,但也希望使用 CDN 来分发脚本。例如,要使用 jQuery,我们有:

jawr.js.bundle.jquery.id=/bundles/jquery.js
jawr.js.bundle.jquery.mappings=/js/lib/.license,/js/lib/jquery-1.8.2.js
jawr.js.bundle.jquery.productionURL=http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

效果很好。我们在调试模式下获取本地库,在生产模式下从 CDN 获取。但是,让我们补充一下:

jawr.js.bundle.bootstrap.id=/bundles/bootstrap.js
jawr.js.bundle.bootstrap.mappings=/js/lib/bootstrap-2.1.0/js/.license,/js/lib/bootstrap-2.1.0/js/bootstrap.js
jawr.js.bundle.bootstrap.dependencies=jquery

现在,在使用 /bundles/bootstrap.js 访问页面时(不是在启动时),JAWR 会抛出一个讨厌的异常:

java.lang.IllegalStateException: The bundleDataHashCode must be set before accessing the url prefix.
    at net.jawr.web.resource.bundle.JoinableResourceBundleImpl.getURLPrefix(JoinableResourceBundleImpl.java:560)
    ...
    at net.jawr.web.taglib.AbstractResourceBundleTag.doStartTag(AbstractResourceBundleTag.java:68)
    ...

这是否意味着我不能依赖带有productionURL 的捆绑包?

【问题讨论】:

    标签: cdn jawr


    【解决方案1】:

    在 JAWR 上有一个关于此的未解决问题,并且在论坛中有一个线程(没有任何答案)。现在的答案(来自我自己)是:

    您可以使用productionURL,但不要依赖这些捆绑包。破碎的一切 是依赖机制。手动添加所有必要的<jawr:.../> 标签有效。

    【讨论】:

    • JAWR 的 Versino 3.5.1 承诺解决这个问题。
    猜你喜欢
    • 2017-03-04
    • 2021-04-18
    • 1970-01-01
    • 2018-11-26
    • 2010-12-17
    • 2015-07-07
    • 1970-01-01
    • 2013-09-09
    • 2011-04-18
    相关资源
    最近更新 更多