2017-08-13 10 views
0

デフォルトでサービスワーカーを含むcreate reactを使用してアプリを構築しました。私はいつでも誰かが/ブログ/に行くときを除いて、与えられたURLを入力すると、実行されるアプリをしたい、静的なコンテンツのセットを提供しています。私は別のURLをキャッチするために、アプリケーション内の反応ルータを使用します。特定のURLを除外するようにサービスワーカーを設定する

私は/ blog /を提供するためにnginxセットアップをしています。誰かが訪問すると/ blog /反応するアプリを最初に訪れることなく正常に動作します。しかし、サービスワーカーが./の範囲を持っているため、誰かが/ blog /以外のURLを訪れるたびに、アプリはサービスワーカーを読み込みます。その時点から、サービスワーカーはサーバへの接続をバイパスし、/ブログ/静的コンテンツの代わりに反応アプリをロードします。

/blog /以外のすべてのURLにサービスワーカーをロードする方法はありますか?

+1

は、あなたのサービスワーカーに 'fetch'イベントリスナの内側に関連するコードを投稿できる一致したときだけで何もしないように、あなたのサービスの労働者を指揮でしょうか? –

答えて

1

だから、考えると、あなたはサービスワーカーに関連する任意のコードを投稿していない、あなたは、このコードブロックはすでにサービスワーカーの内側にあるはずfetch

のコードブロック内の条件付きのシンプルなifを追加することを検討することがあります。ただ、条件文

self.addEventListener('fetch', function (event) { 

    if (event.request.url.match('^.*(\/blog\/).*$')) { 
     return false; 
    } 
    // OR 

    if (event.request.url.indexOf('/blog/') !== -1) { 
     return false; 
    } 
    // **** rest of your service worker code **** 

ノートあなたが正規表現やプロトタイプメソッドindexOfを使用することができますいずれかを追加します。あなたの気まぐれごとに

上記URLが/blog/

+0

遅い返事を申し訳ありませんが、ええ、これは素晴らしい作品です。ご協力いただきありがとうございます。 – user3577166

+0

こんにちは、私は実際にこのコードブロックを私の作成反応アプリケーションに入れますか?イジェクトする必要がありますか? – Woppi

関連する問題