Ich frage mich, ob es eine einfache Möglichkeit gibt, ein CDN für alle Inhalte anzugeben, die ich durch Url.Content in meinen Ansichten referenziere.asp.net MVC Url.Content() CDN-Umleitung
Etwas, das ich in meiner Web.config-Datei in einer ähnlichen Weise wie folgt konfigurieren konnte.
<cdn>
<add filetype="css" root="http://mycdn.mydomain.com/stylesheets/" />
<add filetype="js" root="http://myjscdn.mydomain.com/js/ />
</cdn>
Dann könnte, ich habe nur <% = Url.Content ("~/Content/Stylesheets/What.css")%> und es ausgeben würde http://mycdn.mydomain.com/stylesheets/Content/StyleSheets/What.css.
Wenn nichts verfügbar ist, mache ich es einfach per Erweiterungsmethoden, aber ich frage mich, ob es möglich war, aus der Box.
Das ist, was ich getan habe, aber mit einer benutzerdefinierten Name-Wert-Sammlung, um Erweiterungen zu verschiedenen Domänen zuzuordnen, da Bilder nicht auf der gleichen Domäne wie das CSS waren. –
Ich benutze ein Funktion-Thunk-Muster, um die Konfigurationsprüfung passieren einmal wie: private statische Zeichenfolge CDNDomain = ConfigurationManager.AppSettings ["CDNDomain"]; private statische Func thunk = DetectCDN; private static String DetectCDN (UrlHelper UrlHelper, string path) { if (String.IsNullOrEmpty (CDNDomain)) Thunk = (u, p) => {return u.Content (P); }; sonst thunk = (u, p) => {return CDNDomain + p.TrimStart ('~'); }; // wir müssen damit umgehen, wir sind aus der Schleife vorwärts Rückkehr thunk (urlHelper, Pfad) } –
IDisposable