TYPO3 v14: Asset-Handling wird schlanker – Was sich für Integratoren ändert
Artikel vorlesen lassen
Breaking Changes in TYPO3 v14: Asset-Concatenation und HTTP-Kompression fallen weg. Die gute Nachricht – viele Instanzen sind nicht betroffen, und die Alternativen sind besser.
Nach den strategischen Neuerungen und praktischen Features in TYPO3 v14 ist es Zeit, über Breaking Changes zu sprechen. Konkret: TYPO3 räumt beim Asset-Handling auf und entfernt Funktionen, die seit Jahren als problematisch galten.
Das Gute: Viele Instanzen sind nicht betroffen. Und wer betroffen ist, bekommt bessere Alternativen. Hier der Überblick.
Was wird entfernt?
TYPO3 v14 verabschiedet sich von zwei fest eingebauten Funktionen:
- HTTP Response Compression – TYPO3 komprimiert keine HTTP-Antworten mehr (weder Frontend noch Backend)
- Asset Concatenation & Pre-Compression – CSS und JavaScript werden nicht mehr zusammengefasst oder vorkomprimiert
Beide Features mussten immer explizit aktiviert werden. Viele Instanzen haben sie nie genutzt.
Warum diese Änderung?
HTTP Response Compression ist Webserver-Aufgabe
Bisher konnte TYPO3 seine HTTP-Antworten mit $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] und $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] komprimieren. Das war immer ein Workaround.
Das Problem: Wenn sowohl TYPO3 als auch der Webserver komprimieren, gibt es Kollisionen. Moderne Webserver unterstützen effizientere Algorithmen wie Brotli und Zstandard, die TYPO3 nie implementiert hat.
Die Lösung: Webserver übernehmen die Kompression. Apache und nginx machen das standardmäßig – und besser.
Asset Concatenation war fehleranfällig
Die Idee: Mehrere CSS- und JavaScript-Dateien werden zu einer einzigen Datei zusammengefasst und optional vorkomprimiert. Das sollte HTTP-Requests reduzieren.
Warum das nicht mehr gebraucht wird:
- HTTP/2 und HTTP/3 erlauben parallele Requests (Multiplexing). Mehrere Assets gleichzeitig zu laden ist kein Problem mehr.
- Fragile Implementierung: CSS-Pfade mussten angepasst werden, @charset-Statements kollidierten, externe Assets wurden bei jedem uncached Request neu geladen – Performance-Albtraum bei INT-Elementen.
- Parallele Systeme: Die Fluid ViewHelpers f:asset.css und f:asset.script haben Concatenation nie unterstützt. Zwei Asset-Systeme, zwei Verhaltensweisen – verwirrend.
- Minimaler Gewinn: Moderne Webserver komprimieren kleine Assets on-the-fly ohne nennenswerten Overhead.
Das Core-Team hat Issues in diesem Bereich seit Jahren mit "Won't fix" geschlossen. Jetzt zieht TYPO3 die Konsequenz.
Was bedeutet das für dich?
Wenn du betroffen bist
Du bist betroffen, wenn in deiner Instanz folgende Einstellungen aktiv sind:
- $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] oder $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel'] auf Werte > 0 gesetzt
- TypoScript-Config config.concatenateCss, config.concatenateJs, config.compressCss oder config.compressJs aktiviert
So prüfst du, ob du betroffen bist:
- Schau in deine settings.php oder additional.php nach compressionLevel-Einträgen
- Suche in deinem TypoScript nach config.concatenate oder config.compress
- Nutze das TYPO3 Backend: System → Configuration → $GLOBALS['TYPO3_CONF_VARS'] und suche nach compressionLevel
Wenn du nichts findest, bist du nicht betroffen.
Was du tun musst:
- Prüfe deine Webserver-Konfiguration: Stelle sicher, dass HTTP-Kompression aktiviert ist. Bei Apache und nginx ist das meist Standard.
- Nutze moderne HTTP-Protokolle: Aktiviere HTTP/2 oder HTTP/3 in deiner SSL-Konfiguration.
- Erwäge Build-Tools: Wenn du wirklich Asset-Bundling brauchst, nutze moderne Tools wie Vite oder Webpack – nicht TYPO3.
Apache-Beispiel: HTTP/2 aktivieren
<IfModule http2_module>
Protocols h2 http/1.1
</IfModule>
# Optional: Pre-compressed Assets ausliefern
AddEncoding gzip .gz
AddType "text/javascript" .js.gz
AddType "text/css" .css.gz
<FilesMatch "\\.(js|css)\\.gz$">
ForceType text/plain
Header set Content-Encoding gzip
</FilesMatch>
nginx-Beispiel: HTTP/2 aktivieren
server {
listen 443 ssl http2;
server_name [example.com](<http://example.com>);
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
# Pre-compressed Assets ausliefern, falls vorhanden
gzip_static on;
# Optional: On-the-fly Kompression
gzip on;
gzip_types text/css application/javascript;
[...]
}
Alternativen für Asset-Bundling
Falls du wirklich Asset-Concatenation brauchst:
- Vite oder Webpack: Moderne Bundler, die während des Build-Prozesses arbeiten. Es gibt eine TYPO3-Extension: Vite AssetCollector
- sgalinski/scriptmerger oder t3/min: Community-Extensions, die Script- und Stylesheet-Merging übernimmt
- CDN: Für Traffic-intensive Projekte – Assets werden von Edge-Servern ausgeliefert
Meine Empfehlung:
- Für moderne Projekte mit Build-Pipeline: Nutze Vite oder Webpack. Das ist der professionelle Standard und gibt dir volle Kontrolle.
- Für bestehende Projekte ohne Build-Setup: sgalinski/scriptmerger oder t3/min können eine schnelle Lösung sein, wenn du Asset-Concatenation wirklich brauchst.
- Für die meisten Fälle: Verlass dich auf HTTP/2 und Webserver-Kompression. Das reicht meist völlig aus und ist wartungsärmer.
Was ändert sich in der PHP-API?
Falls du Extensions entwickelst, die mit Assets arbeiten:
Entfernte Methoden (Auszug):
- PageRenderer->disableConcatenateCss()
- PageRenderer->enableConcatenateCss()
- PageRenderer->disableCompressCss()
- PageRenderer->enableCompressJavascript()
- und weitere...
Entfernte Konfigurationspunkte:
- $GLOBALS['TYPO3_CONF_VARS']['FE']['cssConcatenateHandler']
- $GLOBALS['TYPO3_CONF_VARS']['FE']['jsConcatenateHandler']
- und weitere...
Entfernte Hooks:
- $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_div.php']['minifyJavaScript']
Der Extension Scanner findet betroffene Extensions automatisch.
Die Strategie dahinter
Diese Breaking Changes passen ins Gesamtbild von TYPO3 v14:
- Klare Verantwortlichkeiten: Webserver komprimieren, TYPO3 generiert Content
- Moderne Standards nutzen: HTTP/2, HTTP/3, Brotli, Zstandard
- Weniger Maintenance-Last: Fehleranfällige Features werden entfernt, nicht repariert
Das ist kein Feature-Verlust, sondern ein Aufräumen. Die Alternativen sind besser.
Wie du vorbereitet bleibst
TYPO3 v14 ist noch in Entwicklung, aber die Richtung ist klar: Weniger Legacy, mehr moderne Standards.
Ich filtere weiter die relevanten Änderungen aus dem ChangeLog und stelle sie hier im Blog vor. Wenn du Updates direkt bekommen willst, trag dich in meinen TYPO3-Newsletter ein.
Zu TYPO3 v14 wird es natürlich wieder einen umfassenden Videokurs geben – sobald die Version näher an der Veröffentlichung ist.
Quellen & Links
Breaking #107943 – Frontend and backend HTTP response compression removed
Breaking #108055 – Removed Frontend Asset Concatenation and Compression
Breaking #108055 – Removed PageRenderer related hooks and methods
Vite AssetCollector Extension
https://extensions.typo3.org/extension/vite_asset_collector
Zurück
Wer schreibt hier?
Hi, ich bin Wolfgang.
Seit 2006 tauche ich tief in die faszinierende Welt von TYPO3 ein – es ist nicht nur mein Beruf, sondern auch meine Leidenschaft. Mein Weg führte mich durch unzählige Projekte, und ich habe Hunderte von professionellen Videoanleitungen erstellt, die sich auf TYPO3 und seine Erweiterungen konzentrieren. Ich liebe es, komplexe Themen zu entwirren und in leicht verständliche Konzepte zu verwandeln, was sich auch in meinen Schulungen und Seminaren widerspiegelt.
Als aktives Mitglied im TYPO3 Education Committee setze ich mich dafür ein, dass die Prüfungsfragen für den TYPO3 CMS Certified Integrator stets aktuell und herausfordernd bleiben. Seit Januar 2024 bin ich stolz darauf, offizieller TYPO3 Consultant Partner zu sein!
Meine Leidenschaft endet aber nicht am Bildschirm. Wenn ich nicht gerade in die Tiefen von TYPO3 eintauche, findest du mich oft auf meinem Rad, während ich die malerischen Wege am Bodensee erkunde. Diese Ausflüge ins Freie sind mein perfekter Ausgleich – sie halten meinen Geist frisch und liefern mir immer wieder neue Ideen.