抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

废话先不多说,代码就是如下这么简单.

1
2
3
4
5
6
7
8
9
10
11
12
var express = require('express')
var app = express()

app.use(express.static('./dist')) //指定目录

app.get('/', function (req, res) {
//res.send('Hello World') //这里注意下因为生成的静态页不是index.html标准名称 所以不会显示
res.sendFile( path.join(__dirname, './dist/index_prod.html')) //这是返回静态页,注意啊一定要绝对路径
})

app.listen(3000)

下面这个是参考文档里的写法

1
2
3
4
5
6
7
8
9
var http = require('http');
var express = require('express');
var app = express();
app.use("/public", express.static(__dirname + '/public')); //访问路径写到一起了

// 创建服务端
http.createServer(app).listen('80', function() {
console.log('启动服务器完成');
});

然后执行 node app.js 就可以启动服务器了. app.js 就是上面配置所保存的文件名.

上面用的是express,用http-server的话就更简单,不需要自己写配置直接用命令就可以启动了.
不过这个需要全局安装才行,要不不会有命令的.
http-server是另一个插件,别搞混了

1
2
3
4
//如果你的当前项目中存在 public 文件夹,那么默认静态目录会指定到 public
//如果没有 public 文件夹,那么静态目录就是 根目录
//所以要哪个目录充当静态服务器的根目录 就得进入哪个目录执行下面命令
http-server -a 127.0.0.1 -p 7070

下面开始唠叨:

因为现在做动静分离的后台程序,所以需要前端的静态服务器.在本地时单击打开静态文件,有时因为所需插件原因.
也是无法打开的,必须放在静态服务器.所以这时就需要上面的东西了.

还有一点是,我在这个项目里生成的首页名字为 index_prod.html 一定要改成 index.html 一来服务器可以直接显示,二来是如果不改无法正确显示内容.

用res.sendFile( path.join(__dirname, ‘./dist/index_prod.html’))就可以返回指定文件了,但是路径一定要是绝对路径

关于设置静态服务器的必要性 看看这里 是否有必要为网站的静态资源设置一个单独的服务器?能了解到不少东西.

这两个搭建服务器的插件 expresshttp-server 都得先安装才能用.不过呢 因为项目里有时用到别的插件.
比如 webpace的时候 express就不用特别安装了.因为已经包涵在里面.但是http-server使用的范围不是那么广,所以必须安装.

还有就是下面参考文档里说,http-serverexpress要小巧,不过从下载的包来看,并不是如此.可能指的的是功能上吧. 而且express可以操作数据库,这可能对我要写的程序有点用处.

##参考文档
Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
随笔 http-server 快速创建node.js 静态服务器
http-server Angular.js 后端node服务首选 轻量级替换 Express 解决方案

评论