Ich habe einen Apache-Server ausgeführt. Das Backend als solches wird von django unterstützt, aber auf dem Apache-Server platziert. Ich habe einen Servicearbeiter, der ansonsten völlig in Ordnung ist. Hier ist der Code, der die Registrierung machtService-Mitarbeiter Registrierung nicht zurück
navigator.serviceWorker.register('/static/js/components/sw.js').then(function() {
return navigator.serviceWorker.ready;
}).then(function(){console.log("success")})
Aber der obige Code gibt irgendwie nie eine Antwort. Das Versprechen bleibt im Status "Ausstehend". Selbst das Hinzufügen eines Catch am Ende gibt keinen Fehler. Es geht an den navigator.serviceworker.ready, löst aber nicht in die then-Funktion auf. Ich bin mir nicht sicher, was das Problem ist.
Ich habe versucht, die folgenden Stoffe:
ich aber das Problem, dass die Service-Mitarbeiter in gleicher Herkunft sein muss sein kann und alle so hinzugefügt i-Header namens Service Worker-erlaubt:/statisch, sondern das hat den Job nicht gemacht.
Wenn ich die Datei, indem Sie direkt gehen auf den Pfad zugegriffen waren html gespeichert wird (zB: mywebsite/static/serviceworker.html) nach der Zugabe von -Service-Worker-erlaubt:/static Es hat gut funktioniert. Aber wenn ich auf dieselbe HTML-Datei mit der von django gemappten URL zugreife (d. H. Die URL, die ich über urls.py kartiert habe, zB: mywebsite/admin/worker), scheint es nicht zu funktionieren.
Versucht, relative Pfade zu geben, aber relative Pfade funktioniert in meinem Fall nicht.
- Ich setze dies auf einen anderen Apache-Server und da scheint es gut zu funktionieren.
Ich bin aus allen Ideen. Ist das ein Django-Problem?
http://stackoverflow.com/a/35780776/385997 gilt auch für Ihre Frage. –
Aber es sagt nicht das Problem, dem ich gegenüberstehe. Wenn ich absoluten Pfad (mywebsite/service_worker.html) verwende, dann funktioniert das gut. Aber wenn ich den Pfad gebe, den ich in django urls.py eingib und auf denselben HTML-Code mit einer anderen URL zugreife (mywebsite/admin/worker /), dann funktioniert es nicht, obwohl es dieselbe Datei ist. Umfang sollte in beiden Fällen gleich sein, oder? Es wird immer/static/somedirectory sein. Aber es funktioniert – prajnavantha
Got die Antwort von diesem Beitrag http://stackoverflow.com/questions/34389485/implementing-push-notification-using-chrome-in-django – prajnavantha