2017-03-06 3 views
0

Ich möchte eine Website mit IE9 kompatibel machen. Nachdem ich unten Dokumente gelesen habe, habe ich ein Polyfill-Skript in index.html hinzugefügt. https://angular.io/docs/ts/latest/guide/browser-support.htmlWie setze ich angular2 ie9 shim ein?

<script src="node_modules/core-js/client/shim.min.js"></script> 

Allerdings gibt es ein 404 NOT FOUND Fehler wie ich erwartet hatte. (Weil es keine Routen für node_modules sind) fehlgeschlagen Ressource laden: der Server mit einem Status von 404 geantwortet (nicht gefunden) shim.min.js Hier ist ein Fehler Screenshot:
enter image description here

Ich denke, es gibt mehr Vorbereitungen für diese Einstellung. Kann mir jemand helfen?

+0

Können Sie zeigen einen richtigen Fehler angezeigt? – Smit

+0

hast du es installiert: 'npm install core-js' – pixelbits

+0

ja, ich habe es installiert. (Ich habe mein Projekt von angular CLI erstellt, und CLI installiert core-js. Ich habe es bestätigt von package.json> Abhängigkeiten> "core-js": "^ 2.4.1") – changsoo

Antwort

0

Wenn Sie die App-Struktur des eckigen Tutorials befolgen, erfahren Sie, dass von wo die Indexseite geliefert wird, kein Ordner node_module vorhanden ist.

Stattdessen müssen Sie eine Ebene ../ aufstehen und diese ändern:

<script src="../node_modules/core-js/client/shim.min.js"></script> 
+0

Vielen Dank! Ich verstehe deinen Kommentar. Ich denke jedoch, dass es keine weiteren Eltern von index.html gibt, weil sich index.html im Stammordner befindet. Wie auch immer, ich kann dieses Problem beheben, indem ich shim.min.js in den Stammordner verschiebe. (für zeitweiliges Hilfsmittel) Aber, wenn ich dieses Projekt durch "ng bulid --prod" baue und es vom/dist Ordner führe, produziert es immer noch denselben Fehler. Muss ich die Datei shim.min.js immer kopieren und einfügen, um dieses Projekt zu verwalten? – changsoo

+0

@changsoo ja! Da dies möglicherweise nicht im Build-Prozess enthalten ist, müssen Sie es entweder statisch aus einem CDN bereitstellen, falls verfügbar, oder es in den Build-Prozess einfügen, damit es im Bundle verfügbar ist. – Jai

+1

Ich habe auch gefunden, dass ich shim.min.js in src/polyfills.ts importieren kann. (Beispiel: import 'core-js/client/shim.min.js') Wenn ich shim.min.js auf diese Weise in polypills.ts einfüge, muss ich nicht kopieren, einfügen oder von CDN herunterladen. (Natürlich können Polyfills für die aktuellsten Browser überflüssig sein) Wie auch immer, ist dies ein richtiger Weg um Polyfills einzuschließen? Wenn ich falsch liege, korrigiere mich bitte. Vielen Dank! – changsoo

Verwandte Themen