7

जब ऑफ़लाइन जा रहा है, मैं अपने सेवा कार्यकर्ता द्वारा निम्न त्रुटि मिलती है:एक अज्ञात त्रुटि हुई

(unknown) #3016 An unknown error occurred when fetching the script

मेरी सेवा कार्यकर्ता इस तरह दिखता है:

var version = 'v1' 

this.addEventListener('install', function(event){ 
    event.waitUntil(
    caches.open(version).then(cache => { 
     return cache.addAll([ 
     'https://fonts.googleapis.com/icon?family=Material+Icons', 
     'https://fonts.googleapis.com/css?family=Open+Sans:400,600,300', 
     './index.html' 
     ]) 
    }) 
    ) 
}) 

this.addEventListener('fetch', function(event) { 
    event.respondWith(
    caches.match(event.request).then(function(resp) { 
     // if it's not in the cache, server the regular network request. And save it to the cache 
     return resp || fetch(event.request).then(function(response) { 
     return caches.open(version).then(function(cache) { 
      cache.put(event.request, response.clone()) 
      return response 
     }) 
     }) 
    }) 
) 
}) 

यह शीर्ष स्तर की निर्देशिका में है, सही index.html में इस तरह की एक प्रकट आयात करने के लिए अगले:

<link rel="manifest" href="/manifest.json">

मैं अपनी प्रविष्टि जेएस फ़ाइल में सेवा कार्यकर्ता आयात करता हूं। और इसके बाद इसे पंजीकृत करें।

require('tether-manifest.json') 
import serviceWorker from 'sw' 

if ('serviceWorker' in navigator) { 
    navigator.serviceWorker.register(serviceWorker) 
    .then(() => { 
    // registration worked 
    }).catch(error => { 
    throw new Error(error) 
    }) 
} 

यह ठीक पंजीकरण करता है। जब तक मैं ऑफलाइन नहीं जाता तब तक मुझे त्रुटि का सामना नहीं होता है।

मैं webpack उपयोग कर रहा हूँ प्रतिक्रिया के साथ, और webpack में निम्नलिखित मेरी sw.js जिले फ़ोल्डर में फाइल कॉपी करने के लिए कर रही है:

loaders: [ 
     { // Service worker 
     test: /sw\.js$/, 
     include: config.src, 
     loader: 'file?name=[name].[ext]' 
     }, 
     { // Manifest 
     test: /manifest\.json$/, 
     include: config.src, 
     loader: 'file?name=[name].[ext]' 
     } 
] 

त्रुटि क्या हो रहा है के बारे में कोई जानकारी नहीं देता है।

किसी को भी यह पता है कि इसे कैसे ठीक किया जाए?

+0

का उपयोग कर एक ऐसी ही समस्या हो रही है, जिसके परिणामस्वरूप जिले फ़ोल्डर होस्ट करते हैं। त्रुटि केवल ऑफ़लाइन मोड में आती है। मुझे लगता है कि त्रुटि एक शो-स्टॉपर नहीं है हालांकि। – Rexford

+0

वैसे साइट अभी सभी ऑफ़लाइन काम नहीं करती है। मुझे डायनासोर मिलता है, इसलिए हाँ यह एक शोस्टॉपर है यदि आप जो करने की कोशिश कर रहे हैं वह इसे ऑफ़लाइन काम करने के लिए प्राप्त कर रहा है। – MLyck

+0

क्या आप स्वयं फ़ाइल लाने की कोशिश कर रहे हैं? क्या मैं पूछ सकता हूं क्यों? मुझे लगता है कि यह त्रुटि क्यों है लेकिन मैं और अधिक स्पष्ट करना चाहता हूं। –

उत्तर

17

मैं था वास्तव में एक ही समस्या है, मैं एक घंटे में यह पता लगाने की कोशिश बिताया है और यह पता चला कि मैं एक ही मूल के लिए एक और टैब कहीं (ताकि एक ही साझा सेवा कार्यकर्ता का प्रयोग करके) कि था खोला छोड़ दिया था "ऑफ़लाइन" चेकबॉक्स चेक किया गया और इससे किसी अन्य टैब को किसी कारण से sw.js का अनुरोध करने से रोका गया।

ऐसा लगता है कि ऑफ़लाइन स्थिति सर्विस वर्कर स्कोप के भीतर टैब से लीक हो रही है, जबकि सही ढंग से प्रतिबिंबित नहीं किया जा रहा है और न ही ऑफ़लाइन बंद होने वाले दूसरे टैब द्वारा प्रबंधित किया गया है।

तो सुनिश्चित करें कि आपके पास एक ही सेवा कर्मचारी नहीं चल रहा कोई अन्य ग्राहक नहीं है - आपको उन्हें DevTools> एप्लिकेशन> सेवा श्रमिकों में सूचीबद्ध करने में सक्षम होना चाहिए।

+1

यह वास्तव में कारण हो सकता है! मैंने इसे कभी नहीं समझा। लेकिन जब मैंने सबकुछ बंद कर दिया, तो मेरा बिल्ड फ़ोल्डर हटा दिया। मेरे कंप्यूटर को पुनरारंभ करें, साइट का पुनर्निर्माण करें।यह ठीक काम किया। मैंने कोई चीज़ नहीं बदली। तो यह इस मुद्दे के सबसे संभावित कारण की तरह लगता है। साझा करने के लिए धन्यवाद! – MLyck

+0

धन्यवाद। यह बिल्कुल कारण था, मेरे पास ऑफ़लाइन सक्रिय होने के साथ एयरहोर्नर उदाहरण दूसरे टैब में खुला था, जबकि मेरे पास एक अलग बंदरगाह पर एक अलग टैब में एक और स्थानीय साइट खुलती थी। –

+0

मैंने बीटा 18 से आरसी 1 तक कोणीय सीएलआई संस्करणों को स्विच किया और जब भी मैंने एक नया ऐप बनाया, तो जल्द ही मुझे यह त्रुटि मिल जाएगी। मैंने कार्यकर्ता को यहां समझाया जैसा कि यहां बताया गया है और ऐसा लगता है कि मेरी समस्या ठीक हो गई है –

0

मेरे लिए यह त्रुटि तब चली गई जब मैंने इंस्टॉल पर swache को sw.js जोड़ा। बस ऐसा करने के लिए भूल गए, लेकिन इस मुद्दे को हल किया।

0

एक कोणीय परियोजना में काम करते समय मुझे यह समस्या थी। मेरी समस्या यह थी कि मैं कोणीय सीएलआई के अंतर्निहित ng serve -prod कमांड का उपयोग कर रहा था।

यह काम करने के लिए, मैं ng build -prod इस्तेमाल किया और फिर http सर्वर

संबंधित मुद्दे