如何在Express中使用.html文件扩展名?

jem*_*oii 6 file-extension template-engine node.js express handlebars.js

所以我想知道如何使用.html扩展名而不是.handlebars或.hbs扩展名.我这样做是因为我可以使用常规html进行开发,这样我的前端开发人员就可以在IDE中无缝编辑文件而无需任何额外配置.此外,它还有助于在我们的快递应用程序中更快地安装html模板.

jem*_*oii 11

所以我能够通过改变我的app.js文件中的三件事来做到这一点,我希望这能帮助每个人,就像它帮助我一样!

var express  = require('express'),
    exphbr   = require('express3-handlebars'), // "express3-handlebars"
    helpers  = require('./lib/helpers'),

    app = express(), 
    handlebars;

// Create `ExpressHandlebars` instance with a default layout.
handlebars = exphbr.create({
    defaultLayout: 'main',
    helpers      : helpers,
    extname      : '.html', //set extension to .html so handlebars knows what to look for

    // Uses multiple partials dirs, templates in "shared/templates/" are shared
    // with the client-side of the app (see below).
    partialsDir: [
        'views/shared/',
        'views/partials/'
    ]
});

// Register `hbs` as our view engine using its bound `engine()` function.
// Set html in app.engine and app.set so express knows what extension to look for.
app.engine('html', handlebars.engine);
app.set('view engine', 'html');

// Seperate route.js file
require("./routes")(app, express);

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)


小智 5

同意JemiloII,

  1. extname: '.myext'根据https://www.npmjs.org/package/express3-handlebars#-extname-handlebars-在创建expr-HBS实例(exphbr.create())时的配置中
  2. expr-HBS引擎绑定到扩展名:app.engine('myext', handlebars.engine);根据http://expressjs.com/3x/api.html#app.engine
  3. 将扩展名设置为视图引擎:app.set('view engine', 'myext');- 遗憾的是没有链接到它的工作原理.

问候