2014-01-09 43 views
5

是否可以配置sails.js應用程序使用.html擴展而不是.ejs(但仍使用ejs view engine)?更改sails.js EJS視圖以使用.html擴展而不是.ejs擴展?

sails new app創建./views/home/index.ejs./views/layout.ejs

我想將擴展名更改爲.html,但保持其他所有功能都以相同的方式工作。

ie:我現在有./views/home/index.html./views/layout.html,並且主頁仍然會按照常規注入佈局頁面。

我該如何配置?

+0

此更改是否提供任何速度改進?或者你想改變這個的原因是什麼? – cfl

+1

沒有速度的改進,只是喜歡用'.html'擴展名來表達我的觀點 –

回答

9

在你config/views.js

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

看來,儘管如此,對於此功能的支持,未來不能保證,因爲他們刪除該文檔從,所以請謹慎使用。

2

另一種方法

帆由default.To提供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放置在資產文件夾中。現在帆從這裏裝載的意見:)

0

在最新sails.js 0.11,這也有效:

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

要檢查他們是如何做到這一點,在/ node_modules /帆/ lib目錄/鉤/視圖/ 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 
    }; 
}