2009-06-15 14 views
2

Es wird allgemein als Best Practice angesehen, statische Inhalte wie Bilder und CSS aus verschiedenen Subdomains (images1.domain.com, images2.domain.com usw.) bereitzustellen. . Ich habe das im Detail in variousplaces diskutiert, aber ich bin besorgt über die allgemeine Logistik in Bezug auf Wartbarkeit.Die Logistikseite der Verwendung mehrerer Subdomänen für statische Inhalte

Unsere Website hat tausende von Seiten und ändert alle Verweise auf statischen Inhalt von relativ zu absoluten Links auf verschiedene Subdomains klingt wie ein Albtraum, was sind einige allgemeine Ansätze, dies zu erreichen? Gibt es eine Möglichkeit, dies zu automatisieren, vielleicht mit einem Server, der vor dem Webserver sitzt und eingehende Anfragen so umschreibt, dass sie auf verschiedene Subdomains verweisen? Gibt es dafür Rahmen? Ist der Leistungsgewinn die zusätzliche Komplexität und die Wartungskosten wert?

EDIT: Unsere Umwelt ist ASP.NET 3.5 SP1 auf IIS 7.

Antwort

1

ich dies tat einmal im kleinen Maßstab mod_rewrite (zB ein Google Link: http://corz.org/serv/tricks/htaccess2.php)

Der Grund, warum ich wählte das ist weil ich bestimmte Dateierweiterungen hatte, die alle auf dem separaten Server waren. Alles, was mit dieser Erweiterung verbunden war, wurde direkt in die gleiche Dateistruktur der Subdomain verschoben. Könnte nicht die gleiche Situation sein, die du hast.

Dies ist eine kleine Lösung, die nicht sicher ist, welche Auswirkungen dies auf Tausende hat. Dafür könnte ich ein Skript für die textuelle Suche/Ersetzung versuchen.

+0

Ich könnte sehen, wie dies für eine Sub-Domäne funktionieren würde, aber idealerweise würden wir 2-4 Sub-Domänen wollen.Wir könnten nur zufällig eine Subdomain auswählen, aber das würde den Browser-Cache durchbrechen. –

+0

Ack. Ja, ich denke wirklich klein, hier außerhalb meiner Liga. Von Zeit zu Zeit stößt man auf das Problem, dass man sagt: "CARP! Es gibt keine Möglichkeit, das zu tun, aber auf die harte Tour!" Ich hoffe wirklich, dass jemand, der klüger ist als ich, davon abhält, das zu sagen. – JohnMetta

-1

Ein möglicher Ansatz könnte darin bestehen, ein clientseitiges Javascript (jQuery?) Zu verwenden, um alle relevanten Links zu durchsuchen und sie so zu ändern, dass sie auf den statischen Speicherort verweisen.

Da Sie mehrere Domains verwenden möchten, ohne den Browser-Cache zu brechen ich einige Hashing auf den Dateinamen verwenden, um sicherzustellen würde dieser Name auf den gleichen Sub-Domain ...

+0

Nicht sehr wahrscheinlich zu arbeiten: Sie müssen sicherstellen, dass Sie die URL ändern können, bevor der Browser es sieht und beginnt, die Datei zu laden. – Julien

+1

Nun, der einzige andere Weg, an den ich denken könnte, ist dasselbe auf dem Server zu tun. Verwenden eines Moduls, das den HTML-Code vor dem Senden an den Client verarbeiten kann. So wie die Leute bei RPO tun Optimierungen (http://www.aptimize.com/) –

+0

Bisher scheint dies die einzige elegante Möglichkeit, dies zu tun. Kennen Sie Module, die bereits für ASP.NET/IIS entwickelt wurden? –

0

Ewww zeigt immer !! Klingt nach hochgradig voreiliger Optimierung für mich. Wenn Sie das nicht sorgfältig ausmessen, würde ich diese "Verbesserung" zuletzt auf meine To-Do-Liste setzen.

Wenn Sie dies wirklich tun möchten, sollten Sie beim Generieren Ihres HTML-Codes eine zusätzliche Indirektionsebene hinzufügen (die Pseudo-JSP-Syntax folgt). Statt:

<img src="http://images.mysite.com/image/image1.gif"/> 

tun

<img src="${image:url(image1.gif)}"/> 

und haben image: url ein zufälliges virtuellen Host oder etwas erzeugen; Sie können zu einem späteren Zeitpunkt neu definieren, wie image: url funktioniert.

Wenn das nicht möglich ist, glaube ich, dass Eran Kampfs Antwort die richtige ist; Im Java-Jargon würden Sie einen ServletFilter verwenden.

+0

Das Problem mit dieser Lösung ist, dass Sie es für jede einzelne Bilddatei auf der Website tun müssten und es würde auch nicht für CSS und JS funktionieren. Die bessere Lösung wäre, die gesamte Anfrage mit etwas zu bearbeiten, was Eran Kampf meiner Meinung nach meint. –

0

Ich tat dies einmal, aber zum Glück hatten die Leute vor mir keine relativen Links benutzt, sie hatten eine Konstanten-Datei benutzt (zum größten Teil), also war es relativ einfach.

Ich denke, es ist eine gute Idee zu tun, wird es Ihre Möglichkeiten für die Skalierbarkeit öffnen. Suchen Sie möglicherweise die Codebasis für .jpg und .gif und erstellen Sie ein Makro, um die Subdomäne an das Stammverzeichnis des Pfads anzuhängen. Stellen Sie sicher, dass Sie eine einzelne Funktion erstellen, die die Subdomäne zurückgibt, damit Sie die Logik, für die die Subdomäne auswählen kann, an einem zentralen Speicherort speichern können.

Verwandte Themen