最近要去实习,公司里使用sea.js进行模块化开发
具体下载安装就不多说了,请参见SeaJS官网
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body> <script type="text/javascript" src="sea.js"></script>
<script type="text/javascript">
seajs.config({
paths: {
"jQuery": "/",
"hello": "../seaFile"
}, alias: {
"jQuery": "jquery-2.0.3.min",
"hello": "hello/hello"
}
});
seajs.use("hello",function(a){
a.get();
});
</script>
<script type="text/javascript" src="use.js"></script>
</body>
</html>
我的目录结构是这样的,一个seaJS的文件夹,文件夹下
有jquery,sea.html,sea.js (sea.html中代码如上述代码所示),
有文件目录seaFile,此文件目录下有我使用define定义好的一个模块js文件(hello.js)
seajs.config({
paths: {
"jQuery": "/",
"hello": "../seaFile"
}, alias: {
"jQuery": "jquery-2.0.3.min",
"hello": "hello/hello"
}
});
seajs.use("hello",function(a){
a.get();
});
首先如上述代码是加载不到,我所使用的模块的,找不到该模块,上面的hello设置的路径是../
我发现SeaJS官方文档上有这样一句话
- 模块标识可以是 相对 或 * 标识。如果第一项是
.
或..
,则该模块标识是相对标识。
的确这样解析路径也是相对路径,但是它相对到什么地方去了呢?
我发现 http://localhost:63342/www/seaFile/hello.js 404 (Not Found) 没有找到该文件,
http://localhost/的实际目录是E:/wamp/www 但是我这样../ 目录增加了一个www
上述path引入的地方,如果改成一个./就没有任何引入了
总结: ../ 和 ./ 都是相对标识,只是相对标识的位置不一样, ./是相对于当前目录 ../是相对于当前目录上次目录,就是一个多个点,就多往上面翻一次
PS: 写完发现这个问题好蠢