我想在我的風帆js應用程序中完全分開客戶端和服務器端。風帆js路由靜態html
如果我刪除'/'路徑,它會自動從'assets'文件夾提供一個名爲index.html的文件。 我想從assets文件夾中提供另一個文件,我該怎麼做?
我想在我的風帆js應用程序中完全分開客戶端和服務器端。風帆js路由靜態html
如果我刪除'/'路徑,它會自動從'assets'文件夾提供一個名爲index.html的文件。 我想從assets文件夾中提供另一個文件,我該怎麼做?
您可以將Html
文件放置在資產文件夾中。 Sails將爲請求的url提供html文件。
說,你放置一個HTML文件about.html
在assets
文件夾中,Sails將在請求url <your-domain>/about.html
時提供。
如果你看看那帆中間件使用
配置/ 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.html
,assets/about/index.html
和assets/foo/index.html
將在服役/
,,並分別/foo
。但是,如果你真的想控制這個,那麼你可以替換www中間件,並用你自己的中間件代替它。請閱讀風帆的文件middlewares和serve-static's documentation。
你可以看看關於這一主題類似的問題:Any way to serve static html files from express without the extension?
調用當它不工作/對,而HTML推廣。 –
user3712353
@ user3712353你只需要把html文件放在'assets/about/index.html' – MjZac