2014-01-09 2 views
5

Ist es möglich, sails.js apps zu konfigurieren, um .html Extensions statt .ejs zu verwenden (aber immer noch die ejs view engine)?Ändern Sie die EJS-Ansichten von sails.js so, dass anstelle der Erweiterungen .ejs die Erweiterung .html verwendet wird.

sails new app erstellt ./views/home/index.ejs und ./views/layout.ejs.

Ich möchte die Erweiterungen zu .html ändern, aber alles andere auf die gleiche Weise arbeiten.

Dh: Ich hätte jetzt ./views/home/index.html und ./views/layout.html, und die Homepage würde immer noch in die Layout-Seite injiziert werden, wie normal.

Wie kann ich das bitte konfigurieren?

+0

Bietet diese Änderung irgendwelche Geschwindigkeitsverbesserungen? Oder warum wollten Sie das ändern? – cfl

+1

Keine Geschwindigkeitsverbesserung, nur mit meinen Ansichten mit einer '.html' Erweiterung –

Antwort

9

In Ihrem config/views.js:

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

scheint aber, dass die künftige Unterstützung für diese Funktion nicht garantiert ist, da sie diesen von docs entfernt, so mit Vorsicht verwenden.

2

Ein anderer Ansatz

Sails bietet EJS Templat durch default.To dies außer Kraft setzen und Dateien zu verwenden, .html, hier ist eine einfache Lösung. Gehe in deiner Sails App zu config/routes.js. Sie sehen folgenden Code:

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.         * 
*                   * 
***************************************************************************/ 

}; 

Entfernen Sie die Route zu '/' wie unten gezeigt. Halten Sie es leer

New routes.js wie

module.exports.routes = { 

    //Remove '/' :) 

}; 

Gut aussehen !!! Jetzt können Sie Ihre HTML-Dateien in der Sails-App verwenden. Setzen Sie Ihre index.html in den Ordner "Assets". Segel werden nun Aussicht von hier laden :)

0

In neuesten sails.js 0,11, dies gilt auch:

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

Um zu überprüfen, wie sie dies tun, in/node_modules/Segeln/lib/Haken/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 
    }; 
} 
Verwandte Themen