更改 sails.js EJS 视图以使用 .html 扩展名而不是 .ejs 扩展名?
-
21-12-2019 - |
题
是否可以配置 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
};
}
不隶属于 StackOverflow