2016-03-23 26 views
2

私はApacheサーバーを実行しています。そのようなバックエンドはdjangoによってサポートされていますが、Apacheサーバに置かれています。私にはサービスワーカーがいます。ここでは、登録を行うコードはサービスワーカー登録が返されない

navigator.serviceWorker.register('/static/js/components/sw.js').then(function() { 
          return navigator.serviceWorker.ready; 
         }).then(function(){console.log("success")}) 

しかし、上記のコードは何らかの応答を与えることはありません。約束は保留状態のままです。 最後にキャッチを追加してもエラーは発生しません。 navigator.serviceworker.readyに行きますが、then関数には解決しません。私は何が問題なのか分かりません。

私は次のような原料を試してみた:

  • 私は問題は、そのサービスの労働者かもしれませんがので、私は、Service-労働者-可と呼ばれるヘッダを追加したのと同じ起源とすべてにする必要があります:/静的けどそれは仕事をしなかった。 サービス・ワーカー・許可を追加した後:私が直接パスに行くことによって、ファイルにアクセスすると、HTMLが保存された

  • (名前がMyWebSite /静的/ serviceworker.html例):/静的それはうまく働きました。しかし、私はdjangoによってマップされたURLを使用して同じhtmlファイルにアクセスしたとき(つまり、urls.pyでマップされたURL、たとえば:mywebsite/admin/worker)、それはうまくいかないようです。

  • 相対パスを指定しようとしましたが、相対パスは私の場合は機能しません。

  • 私はこれを別のApacheサーバーに置き、そこでは正常に動作しているようです。

私はすべてのアイデアがありません。これはいくつかのジャンゴ問題ですか?

+1

http://stackoverflow.com/a/35780776/385997もご質問に適用されます。 –

+0

しかし、それは私が直面している問題を言っていません。私は絶対パス(mywebsite/service_worker.html)を使用する場合、うまく動作します。しかし、もし私がdjango urls.pyに入れたパスを与え、他のurl(mywebsite/admin/worker /)を使って同じhtmlにアクセスすれば、同じファイルであってもうまく動作しません。スコープは両方のケースで同じでなければなりません。常に/ static/somedirectoryになります。しかし、それはdoen仕事 – prajnavantha

+0

この記事からの答えを得ましたhttp://stackoverflow.com/questions/34389485/implementing-push-notification-using-chrome-in-django – prajnavantha

答えて

0

私はこのリンクの上記の質問への答えを得ました Implementing push notification using chrome in Django 私は、urls.pyファイルを通してsw.jsファイルのパスを与えました。

基本的な考え方は、そのサービスワーカーの登録では、

YOURDOMAIN/path_which_you_gave_during_registration

か、設定している場合はサービス・ワーカーを-可のようなものと同じドメインに存在することが労働者を必要とします/パスそれはこのようにあなたがappropriを行う必要があり

YOURDOMAIN /パス/ path_which_you_gave_during_registration

になりますあなたのサービスワーカーが利用できるように変更を行った。

関連する問題