私は、私の帆のjsアプリでクライアントとサーバーの側を完全に分離したいと思います。帆jsルート静的なhtml
「/」ルートを削除すると、自動的に 'assets'フォルダからindex.htmlという名前のファイルが配信されます。 assetsフォルダから別のファイルを提供したいのですが、どうすればいいですか?
私は、私の帆のjsアプリでクライアントとサーバーの側を完全に分離したいと思います。帆jsルート静的なhtml
「/」ルートを削除すると、自動的に 'assets'フォルダからindex.htmlという名前のファイルが配信されます。 assetsフォルダから別のファイルを提供したいのですが、どうすればいいですか?
Html
ファイルはassetsフォルダに置くことができます。セイルは、リクエストされたURLのhtmlファイルを提供します。
assets
フォルダにabout.html
というhtmlファイルを置くと、URL <your-domain>/about.html
が要求されると、セイルズがそれを提供します。
あなたが帆ミドルウェアを見ればが
のconfig/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の」ファイルを送信します。
ですから、帆のデフォルトのミドルウェアを使用したい場合は、その後、あなたはそれぞれassets/index.html
、assets/about/index.html
、および/
のために提供されますassets/foo/index.html
、、および/foo
にあなたのhtmlファイルを置くことができます。
しかし、本当にこれを制御したい場合は、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