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