Snake's Home

bootstrap+node一天快速建一个网站

最近下载了好几个 bootstrap 的模版, 用nodejs跑起来。
一般用express框架。
结构如下:

1
2
3
4
5
6
7
8
9
-- lib
-- views
+ -- index.html
+ -- about.html
+ -- contact.html
+ -- 404.html
-- node_modules
+ -- express
package.json

先配置 Package.json(类似ruby rails 中的Gem file)

1
2
3
4
5
6
7
8
9
10
{
"name" : "website-using-express",
"version" : "0.0.1",
"scripts" : {
"start" : "node Server.js"
},
"dependencies" : {
"express" : "latest"
}
}

然后Switch to your project folder and type

install``` (类似gem install)
1

接着建立Server.js
express里面一般都是 app.js

```javascript
var express = require("express");
var app = express();
var router = express.Router();
var path = __dirname + '/views/';

router.use(function (req,res,next) {
  console.log("/" + req.method);
  next();
});

router.get("/",function(req,res){
  res.sendFile(path + "index.html");
});

router.get("/about",function(req,res){
  res.sendFile(path + "about.html");
});

router.get("/contact",function(req,res){
  res.sendFile(path + "contact.html");
});

app.use("/",router);

app.use("*",function(req,res){
  res.sendFile(path + "404.html");
});

app.listen(3000,function(){
  console.log("Live at Port 3000");
});

各种配置和路由,express会把这放在router里面去做。
建一个views的文件夹,把html放里面,然后在这个里面相应的链接一下。
然后敲上

start``` (rails start)
1
在浏览器里面敲上 localhost:3000 (端口靠js里面设置)

结果没起来,因为把 css, js, image等放到public 下了。

解决方法:
模板文件默认存放在views子目录。这时,如果要在网页中加载静态文件(比如样式表、图片等),就需要另外指定一个存放静态文件的目录。
```app.use(express.static('public'));

上面代码在文件app.js之中,指定静态文件存放的目录是public。于是,当浏览器发出非HTML文件请求时,服务器端就到public目录寻找这个文件。比如,浏览器发出如下的样式表请求:

1
<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">

服务器端就到public/bootstrap/css/目录中寻找bootstrap.css文件。

然后就跑起来了。
后面研究下数据库等。

参考:
expressjs-and-bootstrap

Express框架