Изменить sails.js Представления EJS, чтобы использовать расширения .html вместо расширений .ejs?

StackOverflow https://stackoverflow.com//questions/21013180

  •  21-12-2019
  •  | 
  •  

Вопрос

Можно ли настроить sails.js приложения для использования .html расширения, а не .ejs (но все равно используйте ejs view engine)?

sails new app создает ./views/home/index.ejs и ./views/layout.ejs.

Я бы хотел изменить расширения на .html но пусть все остальное работает по-прежнему.

т.е.:Теперь у меня было бы ./views/home/index.html и ./views/layout.html, и домашняя страница по-прежнему будет добавлена на страницу макета, как обычно.

Как я могу это настроить, пожалуйста?

Это было полезно?

Решение

В вашем config/views.js:

engine: {
  ext: 'html',
  fn: require('ejs').renderFile
},

Однако, похоже, что будущая поддержка этой функции не гарантирована, поскольку они удалили ее из документации, поэтому используйте с осторожностью.

Другие советы

Другой подход

По умолчанию Sails предоставляет шаблоны EJS.Чтобы переопределить это и использовать html-файлы, вот простое решение.В вашем приложении Sails перейдите по ссылке config/routes.js.Там вы увидите следующий код

module.exports.routes = {

 /***************************************************************************
 *                                                                          *
 * Make the view located at `views/homepage.ejs` (or `views/homepage.jade`, *
 * etc. depending on your default view engine) your home page.              *
 *                                                                          *
 * (Alternatively, remove this and add an `index.html` file in your         *
 * `assets` directory)                                                      *
 *                                                                          *
 ***************************************************************************/

 '/': {
   view: 'homepage'
 }

 /***************************************************************************
 *                                                                          *
 * Custom routes here...                                                    *
 *                                                                          *
 *  If a request to a URL doesn't match any of the custom routes above, it  *
 * is matched against Sails route blueprints. See `config/blueprints.js`    *
 * for configuration options and examples.                                  *
 *                                                                          *
 ***************************************************************************/

};

Удалите маршрут до '/', как показано ниже .Держите его пустым

Новый routes.js будет выглядеть как

module.exports.routes = {

   //Remove '/' :)

};

Ладно!!!теперь, когда все готово, вы можете использовать свои HTML-файлы в приложении Sails.Поместите свой index.html в папку assets .Паруса теперь будут загружать виды отсюда :)

В последней версии sails.js 0.11 это также верно:

engine: 'ejs',
extension: 'html',

Чтобы проверить, как они это делают, в /node_modules/sails/lib/hooks/views/configure.js:

if (typeof sails.config.views.engine === 'string') {
    var viewExt = sails.config.views.extension || sails.config.views.engine;
    sails.config.views.engine = {
        name: sails.config.views.engine,
        ext: viewExt
    };
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top