express 4.x 模板引擎与express.static

Posted QxQstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express 4.x 模板引擎与express.static相关的知识,希望对你有一定的参考价值。

前提:要在express中使用模块引擎需要将要使用的模板引擎安装在本项目,当然,express也是要安装的。在下面实例中,我使用的模板引擎是pug(一起叫做jade)

我的目录结构如下:

根目录为static,根目录下的public文件夹,是静态文件(如图片文件,css文件,js文件de)根目录。根目录下的view是模板文件的根目录。根目录中的app.js是启动文件,

代码如下:

//引入必要的模块
//express.static是express 4.0中唯一的内置中间件,不需要额外引入
var express = require(\'express\');

var app = express();

//将模板引擎设置为pug,也可以设置为其他的,在这里我已经安装了pug
app.set(\'view engine\',\'pug\');

//设置模板文件存放的目录,我将所以的模板文件存在在view文件夹
//它的意思是将模板文件放在与当前文件相同目录级的view文件夹中
app.set(\'views\',\'view\');

//将express.static作为一个中间件
//它的意思是在public中去加载静态文件,public位于与当前文件相同目录级
app.use(express.static(\'public\'));

app.get(\'/\',function(req,res){
    //渲染view文件夹中index.pug模板,由于前面已经设置了模板引擎为pug,所以这里可以不加后缀名
    res.render(\'index\');
});
app.listen(3000,function(){
    console.log(\'reading\');
});

index.pug文件的代码如下

doctype html
html
    head(lang=\'en\')
        title index
        meta(charset=\'utf-8\')
        //- 由于在app.js中将express.static()的第一个参数设置为了public,
        //- 所以会在public中去找css/test/css,就算写成./../css/test.css等,也是
        //- 在public中去找css/test.css,不管在css/test.css前加多少个点,req.url都是css/test.css
        link(type=\'text/css\',rel=\'stylesheet\',href=\'css/test.css\')
    body
        | index
        script(type=\'text/javascript\',src=\'js/index.js\')

 

以上是关于express 4.x 模板引擎与express.static的主要内容,如果未能解决你的问题,请参考以下文章

在 Express 中使用模板引擎

如何在express使用doT模板引擎

node--express模板引擎

为 Express 开发模板引擎

Express与传统Web应用(服务端渲染art-template模板引擎配置静态资源托管)

Express中使用Pug写模板引擎