我正在使用Maven,Spring Boot,WebJars和RequireJS开发一个Web应用程序。我有一个问题,RequireJS没有找到一些JavaScript模块。我已经成功配置了Spring Boot和RequireJS,并且9个模块中的7个正确加载了两个未加载的模块:crossroads和requirejs-i18n。
我在我的pom中包含了两个网络广告罐:
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>requirejs-i18n</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>crossroads.js</artifactId>
<version>0.12.0-1</version>
</dependency>
在我自己的模块中,我尝试加载十字路口和requirejs-i18n作为这样的依赖:
define(['jquery',
'signals',
'Hasher',
'crossroads'], function ($, signals, hasher, crossroads) {...
在这个例子中,jquery,signals和Hasher加载但十字路口没有,我在浏览器控制台中看到了这一点:
Loading failed for the <script> with source http://localhost:8080/js/crossroads.js.js
当我尝试加载requirejs-i18n时,我看到了:
Loading failed for the <script> with source http://localhost:8080/js/requirejs-i18n.js
其他模块加载得很好:
GET http://localhost:8080/webjars/Hasher/1.2.0/hasher.js
有什么想法吗?
我设法通过改变
中的maven依赖来解决十字路口的问题<dependency>
<groupId>org.webjars</groupId>
<artifactId>crossroads.js</artifactId>
<version>0.12.0-1</version>
</dependency>
到
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>crossroads</artifactId>
<version>0.12.2</version>
</dependency>
requirejs-i18n仍然无法加载,我尝试过这样使用它:
define(['i18n!nls/messages'], function(messages){
和这个
define(['requirejs-i18n!nls/messages'], function(messages){
答案 0 :(得分:0)
好的,所以我通过这样做解决了这个问题;
require.config({
paths: {
'i18n' : '/webjars/requirejs-i18n/i18n',
}
});
但我不确定这是否是正确的解决方案
答案 1 :(得分:0)
你也可以这样做:
require.config({
paths: {
"i18n": webjars.path("requirejs-i18n", "i18n")
}
});