Angeben von ASPX am Ende einer CSS-Datei?

8

Warum wird bei der Arbeit an Web-Apps in ASP.NET eine Datei als stylesheet.css.aspx und nicht einfach als stylesheet.css angegeben? Ich habe das in verschiedenen Web-Apps gesehen.

Der Webdesigner hat etwas darüber erwähnt, dass es eine .NET-Sache ist und eine globale Variable für die ASPX-Seite speichert, aber ich habe die ganze Geschichte nicht wirklich verstanden und kenne die ganze Geschichte nicht.

Dies geschieht bei meiner Arbeit für eine große Web-App mit verschiedenen Seiten für verschiedene Länder. Das lässt mich fragen, wann ich separate Web-Apps für verschiedene Länder erstellen würde, anstatt nur eine Web-App, die verschiedene Sprachen bedient? Gibt es eine Leistung, eine architektonische oder andere technische Gründe dafür? Ich kann mir verschiedene nicht technische Gründe vorstellen (z. B. SEO-Überlegungen).

    
Alex 26.02.2009, 14:39
quelle

6 Antworten

14

Wahrscheinlich ist das Stylesheet nicht statisch und wird dynamisch auf dem Server generiert.

Diese Technik kann verwendet werden, um ein anderes Stylesheet zur Verfügung zu stellen, indem verschiedene Parameter berücksichtigt werden (z. B. die Auswahl eines Benutzer-Designs oder etwas anderes).

Erläuterung : Sie können zwar die Erweiterung .css in IIS zuordnen, die von ASP.NET verarbeitet werden soll. Es hat zwei Probleme:

  1. Statische CSS-Dateien werden auch an die ASP.NET-Laufzeit weitergegeben, was zu einem geringen Leistungsverlust führt.
  2. In vielen gemeinsam genutzten Hosting-Umgebungen haben Sie keine Kontrolle über die Zuordnung von IIS-Handlern.

Webbrowser interessieren sich (zumindest, sie sollten es nicht interessieren) über die Erweiterung oder irgendetwas anderes über die URL. Das Einzige, was ihnen wichtig ist, ist der Header Content-Type . Es sollte auf text/css gesetzt werden; sonst können sich einige von ihnen beschweren.

    
Mehrdad Afshari 26.02.2009 14:46
quelle
3

Ein Stylesheet ist nur eine Textdatei - Sie können jede gewünschte Dateierweiterung angeben, solange Ihr <link> übereinstimmt. Mit anderen Worten, das wird funktionieren:

%Vor%

solange Ihr Stylesheet diesen Namen hat. Ich kann mir keinen Grund vorstellen, das Stylesheet mit der Erweiterung .aspx zu benennen, da es irreführend und verwirrend ist. [Andere Beiträge haben gute Erklärungen dafür, warum dies möglicherweise verwendet wird.]

    
Andrew Hare 26.02.2009 14:46
quelle
1

Wie bereits erwähnt, erlaubt es dem Server, es als aspx-Datei zu verarbeiten. Es wird CSS sicher ausspucken, aber Sie können Server serverseitig verarbeiten.

In dem Beispiel, das Sie angegeben haben, wenn Sie denselben HTML-Inhalt für verschiedene Regionen haben (vielleicht übersetzt, aber die gleiche Struktur), können Sie mit einer dynamischen CSS-Datei beispielsweise Hintergrundbilder austauschen. Im Allgemeinen wird dies als eine schlechte Idee betrachtet, da Sie den HTML-Elementen verschiedene Klassennamen hinzufügen sollten, um dieses Problem zu lösen.

Ein weiterer häufiger Grund dafür ist, doppelte Farbdefinitionen zu vermeiden. Technisch können Sie dies auch durch die Verwendung von Klassennamen vermeiden, aber es wird eher ärgerlich. Die meisten Leute wollen etwas wie:

  

define sitebordercolor #999; define sitebackgroundcolor #fff;

und dann in ihrem CSS tun können:

  

.foo { border: 1px solid #sitebordercolor; background-color: #sitebackgroundcolor; }

Allerdings lässt CSS das nicht zu. Mit ASPX-Dateien können Sie also das gleiche Ergebnis erzielen:

  

.foo { border: 1px solid <%=sitebordercolor %>; background-color: <%=sitebackgroundcolor %>; }

    
jvenema 26.02.2009 15:04
quelle
0

Wenn Sie ein Stylesheet .aspx benennen, wird es von der ASP.Net-Engine verarbeitet und nicht einfach als Textdatei bereitgestellt.

Sobald Sie in .Net sind, können Sie Ihr CSS spontan schreiben. Ich würde jedoch die parametrisierte css.aspx bevorzugen, da der Browser CSS-Dateien zwischenspeichern möchte.

    
devio 26.02.2009 14:53
quelle
0

Stylesheets sind normalerweise statische Textdateien. Es gibt keinen Grund, eine .aspx-Erweiterung anzugeben, es sei denn, sie werden dynamisch generiert.

    
Nick 26.02.2009 14:50
quelle
0

Mehrdads Antwort ist Im Hinblick auf die CSS-Dateien - so aktivieren wir dynamische Farben auf einer Reihe unserer Websites - haben Sie die Farbe, die durch einen Query-String definiert wird, aktivieren Sie Seiten-Caching, das sich um diese Query-Zeichenfolge ändert , und fertig.

Als Antwort auf den Architekturteil dieser Frage:

Obwohl SEO-Überlegungen empfehlen, dass lokalisierter Inhalt häufig von einem lokalen Server und einer lokalen Domain geliefert wird (d. h. französischer Inhalt in einer .de-Domain), ist dies oft nicht möglich.

Im Hinblick auf die Wartung ist es einfacher, eine Website als mehrere zu pflegen - also würden Sie sie einmal erstellen, nutzen Sie die Framework-Funktionen, um Lokalisierung (Ressourcendateien usw.), und dann können Sie diese entweder an einem Ort oder an mehreren Standorten bereitstellen, wie Sie möchten.

    
Zhaph - Ben Duguid 20.04.2009 09:14
quelle

Tags und Links