配置WebServer

运行edp webserver start时,默认使用的配置文件为当前目录下的edp-webserver-config.js。如果该文件不存在,将使用默认配置。你可以新建一个edp-webserver-config.js,或者使用其他文件名,在运行命令时通过--config参数指定。

配置文件是一个node module,EDP在WebServer启动前将require它,所以,配置文件后缀必须为.js

下面是EDP的构建默认配置。通过edp提供的项目管理功能来初始化项目时,生成的edp-webserver-config.js与此可能不同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
exports.port = 8848;
exports.directoryIndexes = true;
exports.documentRoot = __dirname;
exports.getLocations = function () {
return [
{
location: /\/$/,
handler: home( 'index.html' )
},
{
location: /^\/redirect-local/,
handler: redirect('redirect-target', false)
},
{
location: /^\/redirect-remote/,
handler: redirect('http://www.baidu.com', false)
},
{
location: /^\/redirect-target/,
handler: content('redirectd!')
},
{
location: '/empty',
handler: empty()
},
{
location: /\.css($|\?)/,
handler: [
autoless()
]
},
{
location: /\.less($|\?)/,
handler: [
file(),
less()
]
},
{
location: /^.*$/,
handler: [
file(),
proxyNoneExists()
]
}
];
};

exports.injectResource = function ( res ) {
for ( var key in res ) {
global[ key ] = res[ key ];
}
};

我们建议:通过edp提供的项目管理功能来初始化项目,在其生成的edp-webserver-config.js上进行WebServer配置自定义。

在自定义自己的WebServer配置时,有下面几个东西需要了解和注意:

port

监听端口号。为了防止和其他常用的WebServer冲突,默认为8848,不为80或8080。

directoryIndexes

是否允许显示目录下的文件索引。

documentRoot

WebServer使用的文档根目录。默认为配置文件所在的当前目录。

injectResource

该方法用于EDP将内置的资源处理函数注入到配置模块中,从而在配置模块里可以使用内置资源处理函数。请保持该方法的存在,并使用默认实现,不要修改它。

getLocations

该方法返回一个数组,数组的每一项是一个具有locationhandlerObject,代表能被location匹配上的资源,使用handler进行处理。

location可以是一个string,也可以是一个RegExp

handler可以是一个资源处理函数function({Object}context),也可以是一个包含多个资源处理函数的数组Array.function({Object}context)。你可以使用EDP WebServer自带的资源处理函数,也可以自己编写一个Javascript Function做为资源处理函数。

详细了解资源处理函数,请阅读接下来的两个章节。