CSS-Stylesheets über verschiedene Domains hinweg teilen

Lesezeit: 3 Minuten

Benutzer-Avatar
SparrwHawk

Ich arbeite an zwei verschiedenen WordPress-Sites, die sich in vielerlei Hinsicht ähneln, aber unterschiedliche Skins haben.

Nehmen wir zum Beispiel an, ich arbeite an zwei „Magazin“-Sites, die das gleiche CSS-Layout haben, z. B. Rastersystem, Ränder usw., aber unterschiedliche CSS-Dekorationseigenschaften, z. B. Farbverläufe, Farben, Schatten.

Was ist der beste Weg, um sie dazu zu bringen, dasselbe Basis-CSS-Layout, aber unterschiedliche Dekorations-CSS zu teilen?

Anfangs dachte ich sowas wie…

<link rel="stylesheet" type="text/css" media="all" href="https://stackoverflow.com/questions/15340222/LINK-TO-BASE-CSS-ON-PRIMARY-DOMAIN.css" />
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'template_url' ); ?>/style.css" /> <!-- This would be the 'top-up' CSS -->

Besonders sauber erscheint mir das aber nicht. Ich gebe aber zu, auch hier gibt es eine sehr ähnliche Frage.

Wird dies immer noch als der beste Weg angesehen? Gibt es Nachteile bei der Verlinkung auf eine andere Domain? Ich habe gelesen, dass dies sogar eine sein kann Vorteil wegen domänenübergreifendem Laden.

  • Der einzige Nachteil beim Laden eines domänenübergreifenden Stylesheets besteht darin, dass das Stylesheet nicht geladen wird, wenn die Domäne ausfällt. Der Hauptvorteil besteht darin, dass es zwischengespeichert wird, sodass es nur einmal für alle Websites geladen werden muss die es benutzen

    – Peter

    11. März 2013 um 14:04 Uhr

  • Ein weiterer Vorteil besteht darin, dass der Browser nur eine begrenzte Anzahl gleichzeitiger Verbindungen pro Domain zulässt. Wenn Sie also Ressourcen auf einer anderen Domain platzieren, können Sie mehr Ressourcen gleichzeitig laden und Ihre Website somit schneller machen. Siehe auch diese Frage: stackoverflow.com/questions/985431/…

    – Michael

    27. Mai 2013 um 8:52 Uhr


Was Sie vorgeschlagen haben, ist in Ordnung. Ich bin mir nicht sicher, ob es eine gibt Vorteil wird als “domainübergreifendes Laden” bezeichnet, aber das Hosten Ihrer Stylesheets auf einem anderen Server ist eine sehr gängige Praxis. Dieser andere Server wird als CDN oder Content Delivery Network bezeichnet. Hier einige Informationen zu CDNs und ihren Vorteilen:

http://www.sitepoint.com/7-reasons-to-use-a-cdn/


Auch Pro-Tipp: tun Sie einige DNS-Vorabruf wenn Sie eine separate Domain zum Hosten Ihrer Dateien verwenden. Es ist so einfach wie:

<link rel="dns-prefetch" href="https://myexternalcdn.com" />

Versuchen Sie, Layoutstruktur und Vorlagen zu trennen und alles aus derselben Domäne aufzurufen

<link rel="stylesheet" type="text/css" media="all" href="https://stackoverflow.com/questions/15340222/fileserverdomain/css/structure.css" />
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/firsttamplatename.css" />

ODER

<link rel="stylesheet" type="text/css" media="all" href="https://stackoverflow.com/questions/15340222/fileserverdomain/css/structure.css" />
<link rel="stylesheet" type="text/css" media="all" href="fileserverdomain/css/secondtamplatename.css" />

Vorteil dieser Lösung ist, dass man zusätzlich Schaltvorlagen anbieten kann 😀

  • Danke für die Antwort, aber gibt es einen Vorteil, alles von derselben Domäne aus anzurufen? zB Geschwindigkeit? FYI, es gibt keine Möglichkeit, dass ihr Thema jemals auf das der anderen umgestellt werden muss, da es sich um separate Magazine handelt

    – SparrwHawk

    11. März 2013 um 14:00 Uhr

  • Es gibt mehrere Vorteile: Geschwindigkeit – Browser cachen die Dateien von derselben Domain, Trennung und Leistung – diese Domain könnte auf einen separaten Dateiserver verweisen, wenn Sie Dateiserver für JS, CSS und Bilder verwenden, können Sie die Datenübertragung auf dem Webserver sparen.

    – keram

    11. März 2013 um 20:45 Uhr

Sie können diesen Filter verwenden, um Stile mit einer beliebigen Bedingung oder einem alternativen Href-String herauszufiltern, Beispiel:

add_filter( 'style_loader_src', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
}
return false;
});

1297890cookie-checkCSS-Stylesheets über verschiedene Domains hinweg teilen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy