2017-01-27 1 views
1

タイトルが示すように、私はFeathersJSのpublic/index.htmlからVue.jsのシングルページアプリケーションを提供しています。私はvue-routerのHTML5履歴モードを使用しているので、要求されたフロントエンドの場所を/index.htmlに書き換えるために、connect-history-api-fallbackのようなミドルウェアを使用する必要があります。要求は何も/index.htmlをピックアップしていないとnotFoundは404応答を提供しています書き換えます時間によってので羽は、他のすべての前に静的ファイルを提供していますので、ちょうどapp.use(notFound());src/middlewareでこのミドルウェアの設定FeathersJSでconnect-history-api-fallbackミドルウェアを使用してVue.jsを配信するSPA

は動作しません。

.use('/', serveStatic(app.get('public')))src/app.jsになる前に設定すると、すべてのサービス要求が/index.htmlに書き換えられ、API呼び出しが到達不能になるため、問題があります。

私は.configure(services)serveStaticミドルウェアを動かすことになったと右のようになどの上connect-history-api-fallbackを置く:

app.use(compress()) 
    .options('*', cors()) 
    .use(cors()) 
    // favicon and serveStatic used to be here 
    .use(bodyParser.json()) 
    .use(bodyParser.urlencoded({ extended: true })) 
    .configure(hooks()) 
    .configure(rest()) 
    .configure(socketio()) 
    .configure(services) 
    .use(require('connect-history-api-fallback')()) 
    // now they are down here 
    .use(favicon(path.join(app.get('public'), 'favicon.ico'))) 
    .use('/', serveStatic(app.get('public'))) 
    .configure(middleware); 

私の質問は以下の通りです:任意のパフォーマンスやセキュリティの欠点は、このアプローチにはありますか?

答えて

2

投稿した設定では、実際にセキュリティ上の問題はありません。

serveStaticミドルウェアをSSRミドルウェアに置き換える場合は、クロスサイトリクエスト(クッキーを使用したCSRF攻撃)によるデータ漏洩を防ぐために、SSRミドルウェアの前にCORSヘッダーを削除することをお勧めします。

関連する問題