2016-11-07 98 views
1

我想在我的風帆js應用程序中完全分開客戶端和服務器端。風帆js路由靜態html

如果我刪除'/'路徑,它會自動從'assets'文件夾提供一個名爲index.html的文件。 我想從assets文件夾中提供另一個文件,我該怎麼做?

回答

0

您可以將Html文件放置在資產文件夾中。 Sails將爲請求的url提供html文件。

說,你放置一個HTML文件about.htmlassets文件夾中,Sails將在請求url <your-domain>/about.html時提供。

+0

調用當它不工作/對,而HTML推廣。 – user3712353

+0

@ user3712353你只需要把html文件放在'assets/about/index.html' – MjZac

0

如果你看看那帆中間件使用

配置/ http.js

order: [ 
    'startRequestTimer', 
    'cookieParser', 
    'session', 
    'myRequestLogger', 
    'bodyParser', 
    'handleBodyParserError', 
    'compress', 
    'methodOverride', 
    'poweredBy', 
    '$custom', 
    'router', 
    'www', 
    'favicon', 
    '404', 
    '500' 
], 

我們可以看到,它試圖在config/routes.js定義,以配合router中間件當前請求如果沒有找到,則嘗試提供www中間件中的靜態文件。如果兩者均失敗,則返回404。

的 'WWW' 中間件

www中間件簡單地使用表達的發球靜電中間件。

www: (function() { 
    var flatFileMiddleware = require('serve-static')(sails.config.paths['public'], { 
    maxAge: sails.config.http.cache 
    }); 

    return flatFileMiddleware; 
})(), 

默認情況下此模塊將響應上的某個目錄 發送請求「的index.html」文件。

所以,如果你想用帆的默認中間件,那麼你可以把你的HTML文件進入assets/index.htmlassets/about/index.htmlassets/foo/index.html將在服役/,​​,並分別/foo。但是,如果你真的想控制這個,那麼你可以替換www中間件,並用你自己的中間件代替它。請閱讀風帆的文件middlewaresserve-static's documentation

你可以看看關於這一主題類似的問題:Any way to serve static html files from express without the extension?