Ich habe eine sehr einfache config.js
Datei, die wie erwartet funktioniert, solange es unter der Stamm-URL bereitgestellt wird. Hier ist die Probe config.js
Datei:SystemJS relative Pfade
System.config({
//use typescript for compilation
transpiler: 'typescript',
//typescript compiler options
typescriptOptions: {
emitDecoratorMetadata: true
},
//map tells the System loader where to look for things
map: {
app: "./src",
},
//packages defines our app package
packages: {
app: {
main: './app.ts',
defaultExtension: 'ts'
}
}
});
Solange diese Datei aus dem Stammpfad geladen wird <script src="/config.js">
und Standorte sind
http://localhost/config.js und http://localhost/src/app.ts alles funktioniert gut.
ich jetzt versuchen, die config.js
Datei zu einem tieferen Verzeichnis zu verschieben, und laden Sie sie mögen: <script src="https://stackoverflow.com/a/b/c/d/e/config.js">
, aber wenn ich das brauche ich dann zu hart Code den Pfad auf der config.js
Datei selbst wie:
//map tells the System loader where to look for things
map: {
app: "./a/b/c/d/e/src",
},
Kann der gesamte Pfad in der Datei config.js
nicht fest codiert werden? Ich hätte gedacht, der führende ./
meinte "relativ zu" aber es tut es nicht. Wenn ich den vollständigen Pfad nicht wieder fest programmiere, funktioniert es nicht. Was ist (oder gibt es) eine Syntax, um den relativen Ort anzugeben?
Danke für die Antwort. Dieses "Kontext" -Verhalten überrascht mich (indem ich den HTML-Pfad (index.html) verwende, um JS zu setzen), da davon ausgegangen wird, dass die HTML- und JS-Dateien in den gleichen Verzeichnissen zusammengefasst sind. In meinem Fall nicht, das ist eine REST-App, bei der die HTML-Dateien in einer Domäne und die JS-Dateien in einer anderen Domäne gespeichert sind. Daher kann nicht davon ausgegangen werden, dass die Verzeichnispfade für eine Gruppe identisch sind. Ich werde in baseURL nachsehen, das du erwähnst, sonst muss ich die Werte fest codieren. –