Ich sage derzeit templateUrl relativ zum aktuellen Fensterort.
cvApp.directive('personalDetails', function () {
return {
restrict: 'A',
templateUrl: '../../Scripts/app/templates/personalDetails.html'
};
});
Wie kann ich templateUrl relativ zum Stammverzeichnis der Anwendung erstellen? Ich suche so etwas:
templateUrl: '~/Scripts/app/templates/personalDetails.html'
Kann AngularJS das schaffen?
Sieht aus wie es unterstützt wird. Entnommen aus einem Thread in der AngularJS Google Group :
die URL mit dem Präfix "/" ist relativ zur Domäne ohne "/".__". Das Präfix wird relativ zur Hauptseite ("index.html") oder zur Basis-URL .__ angegeben. (wenn Sie location im html5-Modus verwenden).
Das funktioniert gut:
templateUrl: '/Scripts/app/templates/personalDetails.html'
Sieht aus, als würden Sie versuchen, app-relative Pfade im ASP.NET-Stil, jedoch clientseitig auszuführen. Das Update ist eigentlich in HTML: Fügen Sie im Kopf ein Basis-Tag hinzu:
<base href="<%= Request.ApplicationPath %>" />
Behalten Sie dann Ihre Vorlagenpfade relativ dazu bei, wie in
templateUrl: 'Scripts/app/templates/personalDetails.html'
Verwenden Sie '././Scripts/app/templates/personalDetails.html'
es hat für mich funktioniert.
eckig 4 webpack als bundler verwenden.
./ means relative path to current folder
../ means parent folder
domain = src
root = src/index
zum Beispiel unter der Datei app.component.ts bedeutet url, dass xxx.html xxx.css sich im selben Ordner wie xxx.ts befindet
./ is relative path as current folder
../ is relative path as parent folder
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})