Wie kann ich diesen AMD-Pfadkonflikt beheben?
Ich versuche das zu benutzenEsri ArgGis JavaScript API, die von geladen wirdDojomitdojo.require
. Ich habe eine bestehende modulareAMD / requirejs Typoskript-Anwendung, in die ich diesen Code integrieren muss. Am Anfang meiner anfänglichen TS-Datei importiere ich mehrere Module:
import tracer = module('../classes/trace');
import pubsub = module('../classes/pubsub');
import masker = module('../classes/masker');
// etc.
Dies hat einwandfrei funktioniert, aber jetzt, da ich den ArcGis-Code hinzugefügt habe, anstatt den relativen Pfad in meiner Anwendung aufzulösen, hat require.js eine baseUrl von der Esri-Site abgerufen und versucht, Folgendes zu laden:
http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/classes/trace.js
// etc.
Dies führt zu einer Folge von 404 Antworten und Skriptfehlern.
Wie kann ich das beheben?
Ich habe versucht, die requirejs baseUrl im Kopf meiner HTML-Datei zu setzen, bevor ich das erste Dokument lade, das Module lädt:
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3"></script>
<script type="text/javascript" src="/content/client/libs/require.js"></script> <!-- data-main="/content/client/hop/hop.app" -->
<script type="text/ecmascript">
require.config({
baseUrl: "/Content/client/hop/"
});
</script>
<script src="~/Content/client/hop/hop.app.js"></script>
Dies schlägt jedoch fehl und es wird eine Ausnahme ausgelöst, für die keine Methodenkonfiguration erforderlich ist.
(NB Wenn ich die Reihenfolge im Kopf des HTML-Dokuments umkehre, so dass die arcgis-API als letzte in der Ladesequenz angezeigt wird, tritt das gegenteilige Problem auf: Meine lokalen Dateien funktionieren alle einwandfrei, aber Dojo und die Mapping-API schlagen fehl, weil sie suchen Pfade relativ zu meiner Site, wenn sie auf dem argis-Server gesucht werden sollen).