前端开发中,经常遇到有些场景需要用到服务器环境,例如AngularJS中的路由,或者是模拟ajax获取数据等需求时,这个时候并不需要考虑到服务端逻辑,只是搭建简单的静态资源服务,因此解决方法有很多,下面介绍几种简单快捷的常用方式:
使用browser-sync
browser-sync,非常棒的工具,最吸引人的是它的监控和同步功能,体验非常好,可以不用一直f5刷新浏览器即可实时看到修改了的变化。只要在同个局域网,还可以在手机上也同步看到变化,不需要手动刷新,非常适合移动端调试,很推荐使用。
安装:
npm install -g browser-sync
在项目根目录执行:
browser-sync start --server --files "css/*.css"
# 也可以配置多项,或者通配符匹配任意目录
browser-sync start --server --files "**/*.css, **/*.html"
使用gulp启动
npm install gulp browser-sync --save-dev
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
gulp.task('browser-sync', function() {
browserSync.init({
files: ['index.html', 'css/*.css', 'js/*.js'],
server: {
baseDir: '.'
}
});
});
使用Python
如果你安装了Python,那这个方法可能最简便了,只需要在该目录下执行命令:
python -m SimpleHTTPServer
这样就启动了一个静态web服务器,此时项目的根目录为执行命令时所在目录,默认端口是8000,如果需要指定端口,则加上端口号启动:
python -m SimpleHTTPServer 8080
使用http-server
如果你安装了node,那么http-server
也是个不错的选择,只需要一行命令就可以快速启动。
安装:
npm install -g http-server
在项目根目录执行:
http-server -a 127.0.0.1 -p 8000
使用static-server
static-server
很类似http-server
,也是基于node,安装和使用方法很相似:
npm install -g static-server
使用时只需要在项目目录下指定该项目的入口文件即可:
static-server -i index.html
下面是一些常用的选项:
-p, –port
指定端口启动
-i, –index指定默认项目入口文件
-d, –debug 显示错误信息
-n, –not-found指定404页面
详见:https://www.npmjs.com/package/static-server
使用Ruby
如果你安装Ruby,Ruby也提供了一个很简便的方式:
ruby -run -e httpd . -p 8888
使用Nginx
几乎所有的web应用在最终部署到Linux
上时都会用到Nginx
做反向代理服务器,所以很有必要会用Nginx
。
下载,解压,运行nginx.exe,在浏览器输入localhost
或127.0.0.1
,如果出现
Welcome to nginx!
则说明Nginx
已经成功安装。
下面是Nginx
常用到的命令:
nginx -s reload // 重新加载nginx配置
nginx -s stop
如果你的需求只是实现静态资源服务,那么只需要如下简单配置即可:root代表项目的根目录,index代表默认的入口文件。
server {
listen 80;
server_name localhost;
location / {
root E:\Work\Workspace;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这时候访问 http://localhost/index.html 就OK了。
使用json-server
如果你的需求只是想模拟ajax
从后台获取数据,因为通常一个项目中前端开发和后台几乎是同时进行的,开发初期往往需要前端自己构造假数据来渲染页面,谷歌浏览器不在服务端环境下调试js,则会被视为跨域,从而导致无法获取本地json
数据,要不就使用火狐浏览器,较好的解决方法是快速搭建一个JSON服务器,这个时候json-server就是个不错的选择了。
安装:
npm install -g json-server
在任意文件夹下创建一个json
文件:如data.json:
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 },
{ "id": 2, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
在该目录下启动json-server
来监听这个文件:
json-server --watch data.json
# 或者指定端口启动启动
json-server --watch data.json --port 3004
可以看到json-server
默认创建了三个请求资源,分别对应了data.json
中的key
值,很方便,这个时候浏览器访问localhostL3000/db 就会看到当前data.json
的数据了。
访问http://localhost:3000/comments/1 ,则可以获取到comments下id为1的json数据:
很神奇是吧,有了数据之后,可以让json-server
也作为静态资源的服务器,这样就没有跨域问题了。json-server
默认的静态资源(HTML,CSS,JS等)是在与json数据文件同级目录下的public文件夹中,你只需要创建一个名为public
的文件夹,把静态资源放到public
目录下,然后直接运行以下命令启动即可:
json-server data.json
假如我们需要指定静态资源文件夹的位置,则可以通过指定目录来启动json-server
即可,如指定静态资源为json数据同级目录的source文件夹下,则:
json-server data.json --static ./source
这样,访问http://localhost:3000/index.html 就可以成功加载到json数据了。
json-server
还有很多更强大的功能,如支持模拟REST API操作等,更多的功能可以到json-server项目文档查看。
使用一些IDE
例如:HBuilder