[TYPO3-german] includeCSS Reihenfolge

Oliver Salzburg kinggencha at googlemail.com
Sat Dec 24 18:17:40 CET 2011


On 2011-12-24 10:21, Wenzel Dirk wrote:
> Hallo,
> 
> kürzlich stellte ich fest, dass Dateien, die ich über includeCSS in die Seite einbinde, in _umgekehrter_ Reihenfolge im header auftauchen. 
> 
> Beispiel:
> 
> page.includeCSS {
> 	file1 = pfad/zu/datei1.css
> 	file2 = pfad/zu/datei2.css 
> 	file3 = pfad/zu/datei3.css
> }
> 
> führt zu dieser Reihenfolge:
> 
> <head>
> 	[...]
> 	<link href=" pfad/zu/datei3.css" media="all" type="text/css" rel="stylesheet">
> 	<link href=" pfad/zu/datei2.css" media="all" type="text/css" rel="stylesheet">
> 	<link href=" pfad/zu/datei1.css" media="all" type="text/css" rel="stylesheet">
> 	[...]
> </head>
> 
> Eine Umkehrung führt zum gewünschten Ergebnis:
> 
> page.includeCSS {
> 	file3 = pfad/zu/datei3.css
> 	file2 = pfad/zu/datei2.css 
> 	file1 = pfad/zu/datei1.css
> }
> 
> ergibt diese Reihenfolge:
> 
> <head>
> 	[...]
> 	<link href=" pfad/zu/datei1.css" media="all" type="text/css" rel="stylesheet">
> 	<link href=" pfad/zu/datei2.css" media="all" type="text/css" rel="stylesheet">
> 	<link href=" pfad/zu/datei3.css" media="all" type="text/css" rel="stylesheet">
> 	[...]
> </head>
> 
> Meine Recherche förderte widersprüchliche Aussagen zutage. Einige Beiträge in Foren behaupten, die Reihenfolge sei über die Nummerierung steuerbar.
> Zu denken gab mir die Antwort von Dmitri Dulepov auf einen Post auf der englischen Mailingliste (Juni 2008: http://lists.typo3.org/pipermail/typo3-english/2008-June/050561.html)
> Er schreibt:
>> The inclusion order is not defined if you use includeJS/includeCSS.
>>> How can I control the order of includes?
>>
>> Use page.headerData instead.
> ("Die Reihenfolge der Einbindung ist nicht definiert, wenn Du includeJS/includeCSS verwendest. [...] Verwende stattdessen page.headerData.")
> 
> Dazu zwei Fragen:
> 1. Gilt Dmitris Aussage auch noch für aktuelle Versionen (also 4.5 oder 4.6)?
> 2. Warum ist das so? 
> 
> Da die Reihenfolge von CSS und JS eine Rolle für die Verarbeitung spielt, sollte es doch möglich sein, sie auch zu steuern. Oder noch deutlicher: Ein Befehl, der eine _undefinierte_ Reihenfolge hervorbringt, erscheint mir völlig nutzlos. 
> 
> Herzliche Grüße und Frohe Weihnachten
> Dirk

Naja die Reihenfolge wird wohl schon mehr oder weniger definiert sein
(sieht man ja) aber eine Garantie wird es wohl nicht geben. Man kann ja
an X Stellen includen (oder am besten noch aus einer Extension heraus
in der List rumpfuschen).

Mir persönlich ist die Reihenfolge meistens egal, ich will höchstens
sicher sein, dass ein bestimmtes Script als erstes eingesetzt wird
(jQuery z.B.), und dafür gibt es ja dann forceOnTop:

page {
  includeJS {
    jquery            =
http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js
    jquery.external   = 1
    jquery.forceOnTop = 1
    base              = fileadmin/templates/base/js/base.js
  }
}

Cheers
Oliver


More information about the TYPO3-german mailing list