2016-11-22 3 views
1

Ich habe zwei asp.net Core-Anwendungen, die eine Reihe von statischen Assets (Bilder, CSS, Schriftarten usw.) teilen und als temporäre Lösung bin ich Kopien in beiden Projekten aufbewahren. Ich möchte dies rationalisieren und natürlich nur eine Kopie des Assets aufbewahren und für beide Projekte zugänglich machen.Sharing statische Assets zwischen asp.net Kernanwendungen (oder über Azure CDN?)

Ich dachte über Lösungen nach und fragte mich, ob es möglich war, ein neues Projekt in der Lösung zu erstellen und den Inhalt irgendwie auf das Azure-CDN zu replizieren, zum Beispiel bei git commit und dann einfach auf die CDN-URLs in der Quelle verweisen. Offensichtlich möchte ich diesen Inhalt nicht manuell verwalten und muss die Dateien jedes Mal manuell auf einen CDN/Speicher-Endpunkt hochladen, wenn ich mein CSS ändere oder ein Bild hinzufüge.

Allerdings kann ich nicht sehen, ob dies möglich ist und wenn ja, wie dies einzurichten? Die App selbst wird in Azure gehostet, sodass diese entweder als visuelles Studio-Update (z. B. der alte "Link hinzufügen" scheint nicht mehr verfügbar zu sein) oder in Azure implementiert werden muss.

Vorschläge, wie dies zu erreichen wäre, wären willkommen.

Dank

Antwort

0

Der einfachste Weg ist Ihre statischen Inhalte auf ein Speicherkonto (Blobs), zu veröffentlichen und dann das CDN auf das Konto Speicher verbinden; Sie müssen dann alle URL-Referenzen in Ihrem Projekt ändern, um den CDN-Endpunkt anstelle der normalen relativen Route zu verwenden.

Das Bit, das Sie automatisieren möchten, ist zur Build/Release-Zeit - Sie können dies tun, indem VSTS eine Befehlsaufgabe hinzufügt, um AZCOPY zu verwenden, um alle Ihre statischen Dateien an die richtige Stelle im Speicherkonto zu setzen; Sie können dies auch in Ihrer Post-Build-Aufgabe tun, wenn Sie keinen CI/CD-Prozess für dev/test verwenden.

Wenn Sie das CDN löschen möchten, können Sie über eine REST-API-Aufruf tun, wie

POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/purge?api-version=2016-10-02 

Siehe CDN docs here

Es ist eine gute Strecke nach unten zu gehen, nicht genug Leute erkennen, wie einfach CDN in azurblau ist und wie viel es das Gefühl deiner Snappiness deiner Seite verbessert.

[EDIT] - vergessen über die Aufgabe zu VSTS, wird auf jeden Fall arbeiten GitHub project

0

Die vorgeschlagene Lösung von Russell Young sehen, aber vielleicht ein einfachen Weg ist eine benutzerdefinierte Ursprung im CDN zu verwenden und die Ursprungs-URL verweisen an den ursprünglichen Speicherort der statischen Assets. Auf diese Weise müssen die Assets an 2 Standorten nicht verwaltet werden.