Skip to content

文件路径拼写说明 #6

@chenxiaochun

Description

@chenxiaochun

jdfx对文件路径的拼写方式进行了一些调整,这里对各种情况进行一下说明。假设你的config.json中有如下配置:

{
    "projectPath": "jdf-test"
}

项目的目录结构如下所示:

jdf-test
├── config.json
├── html
     └── index.html
├── js
     └── a.js
     └── b.js
├── css
     └── style.css
     └──  i
          └── icon.png

1、相对路径

现在引用文件的时候你可以使用类似./../../../的相对路径表示方式,例如:

  • html/index.html中引用了一个js文件:
<script src="../js/a.js"></script>

那么它就会被编译成:

<script src="//misc.360buyimg.com/jdf-test/js/a.js"></script>

2、以/开头的绝对路径

/开头的路径,会被认为是相对于项目根目录的绝对路径。例如还是上面html文件引用js的例子,我还可以写成:

<script src="/js/a.js"></script>

编译之后的结果还是:

<script src="//misc.360buyimg.com/jdf-test/js/a.js"></script>

3、使用require加载文件

require加载文件,并且文件路径以字母开头的,会被直接添加上cdn然后返回,其它情况还是会以相对路径处理。例如:

require("jdf/2.0.0/ui/dialog/1.0.0/dialog");
require("a.js");

然后它们会被编译成:

require("misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog");
require("misc.360buyimg.com/a.js");

相要引用当前目录的文件,必须加上./,例如:

require("./a.js");

4、使用seajs.use加载文件

seajs.use加载文件,文件路径以字母开头的,会被直接添加cdn然后返回,其它情况还是会以相对路径处理。例如:

seajs.use(["jdf/2.0.0/ui/dialog/1.0.0/dialog"]);

然后会被编译为:

seajs.use(["misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog"])

5、以http://https:////开头的绝对路径地址

针对此类绝对路径,jdfx不做任何处理。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions