.ejs 拡張子の代わりに .html 拡張子を使用するように、sails.js EJS ビューを変更しますか?
-
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 '/' :)
};
わかった !!!これで、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
};
}