25 Stimmen

Verweis-App relative virtuelle Pfade in der .css-Datei

Angenommen, ich habe ein "Bilder" Verzeichnis unter dem Stammverzeichnis meiner Anwendung. Wie kann ich von einer .css-Datei aus auf ein Bild in diesem Verzeichnis mit einem ASP.NET-App-Relative-Pfad verweisen.

Beispiel:

Wenn ich in der Entwicklung bin, könnte der Pfad von ~/Images/Test.gif zu /MyApp/Images/Test.gif aufgelöst werden, während er in der Produktion zu /Images/Test.gif aufgelöst werden könnte (abhängig vom virtuellen Verzeichnis für die Anwendung). Ich möchte offensichtlich vermeiden, die .css-Datei zwischen Umgebungen ändern zu müssen.

Ich weiß, dass man Page.ResolveClientUrl verwenden kann, um eine URL dynamisch zur Renderzeit in die Style-Sammlung eines Steuerelements einzufügen. Ich würde gerne vermeiden, dies zu tun.

1voto

TchiYuan Punkte 4147

Auf Windows 7, IIS 7.5:

Nicht nur müssen Sie die von Marcel Popescu erwähnten Schritte durchführen.

Sie müssen auch ein Handler-Zuordnung in den Handler-Zuordnungen von IIS 7.5 hinzufügen. Damit IIS weiß, dass *.css mit dem System.Web.UI.PageHandlerFactory verwendet werden muss

Es reicht nicht aus, einfach die Einstellungen in der web.config-Datei festzulegen.

-3voto

Chris Shaffer Punkte 31499

In der .css-Datei können Sie relative Pfade verwenden; so könnten Sie beispielsweise Ihre CSS-Datei unter ~/Styles/mystyles.css speichern. Sie können url(../Images/Test.gif) als Beispiel verwenden.

-4voto

Viv Jones Punkte 1

Ich hatte Schwierigkeiten, Hintergrundbilder für Inhaltscontainer anzuzeigen, und habe viele Lösungen ausprobiert, die ähnlich zu anderen hier veröffentlichten sind. Ich hatte den relativen Pfad in der CSS-Datei festgelegt, es als Stil auf der aspx-Seite, auf der ich den Hintergrund anzeigen wollte, festgelegt - nichts hat funktioniert. Ich habe Marcel Popescus Lösung ausprobiert und es hat immer noch nicht funktioniert.

Am Ende habe ich es geschafft, es zum Laufen zu bringen, indem ich eine Kombination aus Marcels Lösung und Versuch und Irrtum verwendet habe. Ich habe den Code in die web.config eingefügt, habe die text/css-Zeile in meine CSS-Datei eingefügt, aber ich habe die Hintergrund-Eigenschaft in der CSS-Datei komplett entfernt und ihn als Stil auf den Inhaltscontainer in der aspx-Seite, auf der ich den Hintergrund anzeigen wollte, festgelegt.

Das bedeutet, dass ich für jede oder alle anderen Seiten, auf denen ich den Hintergrund anzeigen möchte, die Stil-Hintergrund-Eigenschaft setzen muss, aber es funktioniert wunderbar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X