Laden...

CSS-Datei vor der Auslieferung verändern ASP MVC .net 4.8

Erstellt von Christoph K. vor einem Jahr Letzter Beitrag vor einem Jahr 626 Views
Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr
CSS-Datei vor der Auslieferung verändern ASP MVC .net 4.8

Hallo zusammen,

ich habe ein ASP.net MVC Projekt, welches unter .net 4.8 läuft.
Ich würde gerne Anfragen an CSS Dateien verändern, bevor sie ausgeliefert werden. Es geht um eine simple String-Ersetzung.

Hat jemand eine Idee, wie ich jegliche Anfrage an CSS-Dateien vor der Auslieferung an den Client verändern kann? Bzw. die Response verändern kann?

LG
Christoph

16.840 Beiträge seit 2008
vor einem Jahr

Erster Google Treffer Google Suche nach "asp.net mvc return css dynamically"
how-to-return-dynamic-css-with-asp-net-mvc

Beachte: CSS Dateien gelten als statische Inhalte und werden je nach Config nicht mit ASP.NET als Runtime ausliefert, sondern durch den Webserver - bei Dir wohl IIS.

Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor einem Jahr

Vielen Dank für deine Antwort, aber ich möchte nicht eine spezifische Action eines Controllers handhaben, sondern alle Anfragen, die über den StaticFileHandler abgebildet werden.

16.840 Beiträge seit 2008
vor einem Jahr

Hast Du in Deinem Startbeitrag nicht gesagt, kann niemand riechen.
[Hinweis] Wie poste ich richtig?

Der Standard StaticFileHandler kann das gar nicht, weil er rein statische Dateien handhabt. Deswegen auch der Name "Static"FileHandler.
Kannst Du dem Quellcode des StaticFileHandlers auch entnehmen. Willst Du das trotzdem, musst Du einen eigenen Handler schreiben und in der Pipeline/Webserver registrieren.

Davon abgesehen sollte man das mit statischen Bezeichnern gar nicht tun, weil so weder das Web noch das Request-Verhalten funktioniert.
Du kannst im Endeffekt überall selbst nachlesen, dass dynamisches CSS einer spezifischen Datei (also zB styles.css) eines der schlimmsten Dinge ist, das man aus Browser- und Requestsicht tun kann.
Zwischenstellen wie Proxies und Co oder eben der Browser selbst cachen solche Dinge aktiv (ohne Server-zutun), weil so statische Dateien funktionieren.
Dynamische Anfragen sollte man immer gegen eine dynamische Schnittstelle machen, sodass der gesamte Request inkl. Resource (also zB styles.css wird zu styles.dynamicNameHere.css) dynamisch umgesetzt werden kann.
Ein Workaround ist auch mit dynamischen Parametern zu arbeiten wie styles.css?customerName=abc um Caching-Mechanismen von Browsern und Proxies zu umgehen.

Aber für Dein Vorhaben ist der StaticFileHandler nicht gedacht.
Der StaticFileHandler handhabt nur das Standard-Verhalten, wie es gedacht ist (inkl. Caching Version Enforce mit ETags) - keinerlei dynamische Punkte.