2017-06-19 1 views
0

Das ist mein Code in ist "file: //":Ace Editor JSON-Format Prüfung in nicht "localhost: //"

my code image. click and see

Es funktioniert. Aber wenn ich es auf "127.0.0.1" setze.

enter image description here

Es gab einen Fehler. GET http://localhost:8080/worker-json.js 404 (nicht gefunden)

+0

Welches Tool verwenden Sie, um die Anforderung zu kompilieren und im zweiten Bild zu etwas zu exportieren, das die Browser verstehen? Sie müssen es so konfigurieren, dass die Datei worker-json.js im Web Worker geladen werden kann. –

+0

vue.js + webpack + Babel. Wenn ich die Datei worker-json.js benötige, stellt sich heraus, dass 'ace/lib/es5-shim' nicht aufgelöst werden kann. Und ich frage mich, warum es eine get-Anfrage ist? –

+0

Es kann schwierig sein, es so zu konfigurieren, dass es mit dem Webpack funktioniert, da Sie worker-json.js als separate Datei bereitstellen müssen –

Antwort

0

Ich habe folgendes Problem und das getan behoben:

ace.config.set ("workerPath", "assets/js/plugins/editors/ace /")

Edit: Ich hatte ein Problem mit mehreren Web-Arbeiter erstellt jedes Mal, wenn Angular View erstellt wird, so mit einer schnellen Suche fand ich auch eine Lösung zu verhindern, dass Ace Web-Arbeiter mehrere Male erstellen, hier ist mein Code zu initiieren Herausgeber:

// Code running with Angular 4 CLI and WebPack 
 
    updateSkecthCalcPanel() { 
 
    const editor = ace.edit(this.canvasObject.sketchCalcEditor); // Selector name 
 
    const aceSession = editor.getSession(); 
 
    ace.config.set("workerPath", "assets/js/plugins/editors/ace/") // Folder contain the worker 
 
    editor.setTheme("ace/theme/monokai"); 
 
    editor.setShowPrintMargin(false); 
 
    editor.setOptions({ readOnly: true, maxLines: Infinity }); 
 
    aceSession.setMode("ace/mode/json"); 
 
    aceSession.setValue(js_beautify(JSON.stringify(this.sketchObject), { indent_size: 2 })); 
 
    // Quick-fix that allows to omit ACE problem with loading workers 
 
    ace.require("ace/edit_session").EditSession.prototype.$startWorker = function() { } 
 
    
 
    // Fold Code 
 
    window.setTimeout(function() { 
 
     aceSession.foldAll(1, aceSession.getLength()); 
 
    }, 500); 
 
    }