http-server是一个简单的零配置命令行http服务器。 它足够强大,足以用于生产用途,但它既简单又易于破解,可用于测试,本地开发和学习。
一、应用场景
局域网访问静态页面
访问本地计算机中的文件都是基于file协议,如果要开放我们的本地文件给局域网人员访问,是不能使用file协议。
需要用http协议或者ftp协议。而基于http协议的http-server就是一个不错的选择。
处理页面跨域
当页面含有跨域的请求,此时可以利用http-server,使用命令
# -p 本地运行端口 -P 将所有无法在本地解析的请求代理到给定的URL进行处理
http-server -p 8080 -P https://google.com
二、安装http-server
1、安装node
# 查看node版本 验证是否安装完成,正常安装会显示版本号
node -V
2、安装http-server
通过npm下载速度较慢
npm install http-server -g
苹果电脑可能无权限,需要授权
sudo npm install http-server -g
通过淘宝npm镜像下载速度会更快(推荐)
cnpm install http-server -g
# 配置淘宝镜像,再进行安装
npm config set registry https://registry.npm.taobao.org
# 配置后可通过下面方式来验证是否成功
npm config get registry
3、验证安装是否成功
http-server -v
4、使用http-server开启服务
定位到要启动的index.html项目文件夹中,使用命令http-server
开启服务
http-server
# 默认的访问地址 http://127.0.0.1:8080
启动成功,如图:
防止80端口已被占用,可以指定端口
# 启动服务器 -p 指定端口号 -o 打开浏览器
http-server -p 6080 -o
附录1、使用http-server 开启服务
进入目标文件夹,输入hs或者http-server命令(hs 简写) 推荐使用如下命令
http-server -c-1
只输入http-server的话,更新了代码后,页面不会同步更新。
http-server [path] [options]
path就是你当前运行该命令下对应的某个文件夹名称;可用选项 options,如: hs -g -o
参数注释
-p或--port要使用的端口(默认为8080)
-a 要使用的地址(默认为0.0.0.0)
-d显示目录列表(默认为true)
-i显示自动索引 默认true
-g或者--gzip当启用(默认为false)时,它将./public/some-file.js.gz代替./public/some-file.js当文件的gzip压缩版本存在且请求接受gzip编码时。
-e 或者 --ext 如果没有提供默认文件扩展名(默认为html)
-s 或者 --silent 禁止控制台日志信息输出
–cors 允许跨域资源共享
-o 启动服务器后打开浏览器窗口
-c 设置缓存cache-control max-age heade存留时间(以秒为单位),示例:-c10是10秒,默认是3600秒,如果要禁用缓存就使用-c-1
-U 或者 --utc 使用 UTC格式,在控制台输出时间信息
-P或者将--proxy 所有无法在本地解析的请求代理到给定的URL。例如:-P http://someurl.com
-S或--ssl 启用https。
-C或--cert ssl证书文件的路径, cert文件的路径(默认值:) cert.pem。
-K或--key ssl密钥文件的路径(默认值:) key.pem。
-r或--robots 提供/robots.txt(其内容默认为User-agent: *\nDisallow: /)
-h或--help 显示帮助