2017-04-19 4 views
2

Meine Projektstruktur Ausführung sieht aus wieWeb-Arbeiter 404 werfen, wenn

js 
    /client.js 
    /script1.js 
    /webWoker.js 
node_modules 
.gitignore 
index.html 

Die main.html hat es auch

<script type="text/javascript" src="js/script1.js"></script> 
<script type="text/javascript" src="js/client.js"></script> 
<script type="text/javascript" src="js/webWoker.js"></script> 

in

enthalten My script1.js sieht aus wie

if (window.Worker) { 
    console.log("uri: " + document.documentURI); 
    var myWorker = new Worker("myworker.js"); 
    myWorker.postMessage("hello"); 
    console.log(myWorker); 

    myWorker.onmessage = function (e) { 
     result.textContent = e.data; 
     console.log('Message received from worker: ' + result.textContent); 
    }; 
} 

und meine webWorker.js sieht aus wie

onmessage = function (e) { 
    console.log('Message received from main script'); 
    var result = "#27ae60"; 
    console.log('Posting message back to main script'); 
    postMessage(result); 
}; 

I node.js für dieses Projekt verwenden und es über npm start laufen, und wenn ich das ich in Browser laufen sehen

script1.js:81 GET http://localhost:8080/webWorker.js 404 (Not Found) 
execute @ script1.js:81 
img.onload @ script1.js:64 

Was falsch ist hier los?

Antwort

2

Sie müssen das Worker-Skript nicht in Ihre Hauptseite einfügen (es ist sogar eine schlechte Idee), aber der URI, den Sie an new Worker(URI) übergeben, ist relativ zur aktuellen DocumentURI.

In Ihrem Fall sollte es new Worker("/js/webWorker.js"); sein.

+0

'scipt1.js: 81 GET http: // localhost: 8080/webWorker.js 404 (nicht gefunden)'. Ich bekomme immer noch das, obwohl ich den Pfad geändert und es aus 'html' Datei entfernt – daydreamer

+0

@ Daydreamer versuchen'/js/webWorker.js' Sie zeigen nicht, wo ist 'main.html' – Kaiido

+0

Hallo @Kaiido, auch'/js/webWorker.js scheint nicht zu funktionieren. Ich habe meine Frage mit dem Pfad zu 'index.html' aktualisiert. – daydreamer

Verwandte Themen