2017-11-13 29 views
1

スタティックランディングページとexpress.jsアプリ(react.jsシングルページアプリ)を組み合わせようとしています。http-proxy-middleware - 静的ファイルへのアクセス

私のランディングページでは、私は、静的なページのためのhttp-proxy-middleware マイserver.jsを使用してプロキシを設定するには以下のようになります。

var express = require('express'); 
var app = express(); 
var path = require('path'); 
var proxy = require('http-proxy-middleware'); 

var options = { 
     target: 'http://localhost:9000', // the app 
     changeOrigin: true 
    }; 
var exampleProxy = proxy(options); 

app.use('/app', exampleProxy); 
app.use(express.static(__dirname + '/')) 

app.listen(8080); 

問題は、私がローカルホストに到達したときということです:8080 /アプリ/ I index.htmlを修正するアクセス権がありますが、リソースを取得できません。bundle.jsはhttp://localhost:8080/bundle.jsのようにフェッチされていますが、明らかにlocalhost:9000ではなく、8080

アプリはその静的ファイルにアクセスできますか?

答えて

1

http-proxy-middlewareモジュールのワイルドカードパスマッチングを使用できます。パスパラメータを渡さずにapp.useを実装できます。

app.use(proxy('/*.js', exampleProxy)); 
app.use(proxy('/api', exampleProxy)); 

これは、ポート9000を通じて ".js"ファイルを提供します。同様に、このワイルドカードマッチングを使用して、他のアセットも配信できます。

+0

ありがとう、ルートを管理するための魔法がありますか? 1つのページに '/ template/vintage 'しかないので、' 'Location/app/template/vintageは' 'どのルートにもマッチしませんでした。 – lipenco

+0

プロキシオプションでpathRewriteプロパティを使用できます。次に、任意のパスを書き換えることができます。 pathRewrite:{'^/api/remove/path': '/ path'} – amanpurohit

関連する問題