Soweit ich das beurteilen kann (da die Dokumentation zu System.Web.Optimization
sehr spärlich ist), funktioniert die Bündelung in ASP.NET so, dass Sie eine Reihe von Dateien (Javascript oder CSS, entsprechend ScriptBundle
und StyleBundle
) registrieren und zuordnen mit einem virtuellen Pfad; Beispiel: ~/bundles/jqueryui
für alle jQuery-UI-Skripts. Später kann ASP.NET diese Dateien minimieren, wenn Sie im Nicht-Debug-Modus ausgeführt werden, und die verkleinerte Version wird in dem virtuellen Pfad verfügbar gemacht, den Sie für das Bundle angegeben haben.ASP.NET-Bündelung - virtuelle Standardpfade?
Das Standard-Bundle-Setup registriert einige Script-Bundles mit ~/bundles/...
als virtuellen Pfad und einige CSS mit ~/Content/css
als den virtuellen Pfad. Meine Frage ist, ist das nicht inkonsequent? Wäre es nicht sinnvoller, etwas wie ~/bundles/js/...
und ~/bundles/css/...
zu haben? Tatsächlich existiert das Verzeichnis ~/Content
tatsächlich als echtes Verzeichnis, daher besteht sogar die Gefahr einer Namenskollision. Ich hätte gedacht, dass Sie möchten, dass Ihre virtuellen Bundle-Pfade Verzeichnisse sind, die nicht standardmäßig vorhanden sind und nicht auf dem tatsächlichen Dateisystem erstellt werden sollen. Gibt es einen Grund, warum ~/Content/css
für die virtuellen Pfade des CSS-Pakets verwendet wird, die ich nicht verstehe?
Danke, diese Antwort scheint wahrscheinlich der Grund zu sein, warum Microsoft es getan hat und ich hatte nicht daran gedacht. Ich denke, es wäre konsistenter, wenn sie Standardpfade von etwas wie '~/Content/cssBundles' und' ~/Content/jsBundles' verwendet hätten. – Jez
@jez Ich arbeite bei Microsoft im MVC-Team, also weiß ich es sicher :) – Eilon
Es gibt jetzt ein CssUrlRewriteTransform, um dieses Problem zu lösen. Dadurch werden die URLs in Ihren CSS-Dateien neu geschrieben, sodass sie sich auf das virtuelle Verzeichnis und nicht auf das ursprüngliche Verzeichnis beziehen. Auf diese Weise kann die Datei trotz des neuen Speicherortes der CSS-Datei im ursprünglichen Verzeichnis gefunden werden. – Triynko