Как использовать.html расширения файлов для руля в экспрессе?

Поэтому мне было интересно, как я могу использовать расширения.html вместо расширений.handlebars или.hbs. Я делаю это для того, чтобы я мог разрабатывать с использованием обычного html, чтобы мои разработчики веб-интерфейса могли без проблем редактировать файлы в своих IDE без какой-либо дополнительной настройки. Кроме того, это поможет намного быстрее установить HTML-шаблоны в наши экспресс-приложения.

2 ответа

Решение

Так что я смог сделать это, изменив три вещи в моем файле 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);

Согласен с JemiloII,

  1. extname: '.myext' в конфиге при создании экземпляра expr-HBS (exphbr.create()) в соответствии с https://www.npmjs.org/package/express3-handlebars
  2. привязка механизма expr-HBS к расширению: app.engine('myext', handlebars.engine); в соответствии с http://expressjs.com/3x/api.html
  3. установите расширение как движок вида: app.set('view engine', 'myext'); - к сожалению, нет ссылки на то, как это работает.

С уважением

Другие вопросы по тегам