是否可以配置 sails.js 应用程序来使用 .html 扩展而不是 .ejs (但仍然使用 ejs view engine)?

sails new app 创造 ./views/home/index.ejs./views/layout.ejs.

我想将扩展名更改为 .html 但让其他一切都以同样的方式工作。

IE:我现在会有 ./views/home/index.html./views/layout.html, ,并且主页仍会像平常一样注入到布局页面中。

请问我该如何配置?

有帮助吗?

解决方案

在你的 config/views.js:

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

似乎无法保证未来对该功能的支持,因为他们从文档中删除了此功能,因此请谨慎使用。

其他提示

另一种方法

Sails 默认提供 EJS 模板。要覆盖此模板并使用 .html 文件,这里有一个简单的解决方案。在您的 Sails App 中,转到 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 '/' :)

};

好的 !!!现在已经完成了,您可以在 Sails 应用程序中使用您的 HTML 文件。将你的index.html放入assets文件夹中。Sails 现在将从这里加载视图:)

在最新的 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