2016-11-07 12 views
1

私は、私の帆のjsアプリでクライアントとサーバーの側を完全に分離したいと思います。帆jsルート静的なhtml

「/」ルートを削除すると、自動的に 'assets'フォルダからindex.htmlという名前のファイルが配信されます。 assetsフォルダから別のファイルを提供したいのですが、どうすればいいですか?

答えて

0

Htmlファイルはassetsフォルダに置くことができます。セイルは、リクエストされたURLのhtmlファイルを提供します。

assetsフォルダにabout.htmlというhtmlファイルを置くと、URL <your-domain>/about.htmlが要求されると、セイルズがそれを提供します。

+0

について /を呼び出すときには、HTMLの拡張子なしで、働いていません。 – user3712353

+0

@ user3712353 htmlファイルを 'assets/about/index.html'に置くだけでいいです – MjZac

0

あなたが帆ミドルウェアを見ればが

の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.htmlassets/about/index.html、および/のために提供されますassets/foo/index.html、​​、および/fooにあなたのhtmlファイルを置くことができます。

しかし、本当にこれを制御したい場合は、wwwミドルウェアを置き換えて、自分のミドルウェアで置き換えることができます。セイルの文書middlewaresserve-static's documentationについてもお読みください。

あなたはこのトピックに関する同様の質問をチェックアウトすることができます:Any way to serve static html files from express without the extension?

関連する問題