首页 新闻 赞助 找找看

requirejs 一个路径像bug的问题

0
悬赏园豆:15 [待解决问题]

我在html中通过require(['/scripts/a.js'],function(a){}); 来引用 a.js 。
a.js 里 define(['./b'],function(b){}); a.js里需要依赖同目录的b.js 。
可为何 require 给我加载的b http 请求是 /script/b 而不是 /script/b.js ?
请问我能通过什么方式解决这种问题啊 。 我requirejs和公用库是放在别的服务器上的静态站点中的。

rainrcn的主页 rainrcn | 初学一级 | 园豆:113
提问于:2016-05-04 10:55
< >
分享
所有回答(1)
0

首先,requirejs中加载的模块,就是文件的名称,不需要加上.js。

其次,你a.js里面引用的b.js,路径写的不对。路径还是从main.js里面配置的根目录开始寻找,而不是从a.js所在的位置开始寻找。

 

所以,你应该这样使用:

1 在main.js配置上通用的js路径。

2 加载a模块(自动加载b模块)

 

如果还是搞不清楚,推荐去看官方文档。http://requirejs.org/docs/start.html

xingoo | 园豆:711 (小虾三级) | 2016-05-04 17:07

我requirejs和 require main.js 都是放在静态站点中的 。 baseUrl 是配置的静态站点根路径。

我在自己的动态站点 引用 requirejs和 main.js  。 然后 需要require 自己动态站点的js 。难道我不能使用 绝对路径吗?而且 requirejs官方文档都说了  前缀带 / 或者后缀带.js 时,会以文件形式加载。

现在的问题是 。我加载了a.js了 。但是 a.js里还需要依赖同目录下的b.js 。我在define上使用 ./b 应该会识别为模块吧。可是 最终的http 请求 却是  /script/b 而不带.js。

支持(0) 反对(0) rainrcn | 园豆:113 (初学一级) | 2016-05-05 10:04

再说了 。我在我想require我动态站点的 js ,也只能使用 绝对路径吧。

支持(0) 反对(0) rainrcn | 园豆:113 (初学一级) | 2016-05-05 10:05

@rainrcn:

动态站点可以使用JSP的方式,或者向后台请求,确定一个基本的根目录。

后续的所有JS文件,都根据这个根目录进行加载就行了。

不用你非得写个绝对路径...

 

请求时/script/b,还是由于你路径写法有问题。你再好好调试调试吧...最好是放个图上来。

支持(0) 反对(0) xingoo | 园豆:711 (小虾三级) | 2016-05-05 12:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册