如何将JAWR与CDN中的库实际使用

时间:2012-10-19 11:24:49

标签: cdn jawr

我们使用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的捆绑包?

1 个答案:

答案 0 :(得分:0)

JAWR上有一个关于这个和一个帖子(没有任何答案)的公开问题。答案(来自我自己)现在是:

  

您可以使用productionURL,但不要依赖这些捆绑包。一切都被打破了   是依赖机制。手动添加所有必需的<jawr:.../>代码。