.ejs 拡張子の代わりに .html 拡張子を使用するように、sails.js 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 '/' :)

};

わかった !!!これで、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