Skip to main navigation Skip to main content Skip to page footer
TYPO3 v14: Asset-Handling wird schlanker – Was sich für Integratoren ändert

TYPO3 v14: Asset-Handling wird schlanker – Was sich für Integratoren ändert

Artikel vorlesen lassen

Loading the Elevenlabs Text to Speech AudioNative Player...
| TYPO3 | Geschätzte Lesezeit : min.

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:

  1. HTTP Response Compression – TYPO3 komprimiert keine HTTP-Antworten mehr (weder Frontend noch Backend)
  2. 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:

  1. Schau in deine settings.php oder additional.php nach compressionLevel-Einträgen
  2. Suche in deinem TypoScript nach config.concatenate oder config.compress
  3. 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:

  1. Prüfe deine Webserver-Konfiguration: Stelle sicher, dass HTTP-Kompression aktiviert ist. Bei Apache und nginx ist das meist Standard.
  2. Nutze moderne HTTP-Protokolle: Aktiviere HTTP/2 oder HTTP/3 in deiner SSL-Konfiguration.
  3. 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.

Und wenn du TYPO3 14 von Grund auf lernen willst: Ich arbeite am TYPO3 Komplettkurs, der mit jeder neuen Version aktualisiert wird. Moderne Asset-Strategien, Fluid 5, Site Sets und alles andere, was v14 mitbringt. Trag dich in die Warteliste ein, um den vergünstigten Einführungspreis zu sichern.


Quellen & Links

Breaking #107943 – Frontend and backend HTTP response compression removed

https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/14.0/Breaking-107943-FrontendAndBackendHTTPResponseCompressionRemoved.html

Breaking #108055 – Removed Frontend Asset Concatenation and Compression

https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/14.0/Breaking-108055-RemovedFrontendAssetConcatenationAndCompression.html

Breaking #108055 – Removed PageRenderer related hooks and methods

https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/14.0/Breaking-108055-RemovedPageRendererRelatedHooksAndMethods.html

Vite AssetCollector Extension

https://extensions.typo3.org/extension/vite_asset_collector

Zurück

Kommentare unter Artikeln sind deaktiviert. Wenn du eine Frage oder Ergänzung hast, schreib mir bitte eine E-Mail.

Hi, ich bin Wolfgang.

Seit 2006 arbeite ich mit TYPO3. Nicht in der Theorie, sondern in echten Projekten mit echten Deadlines. Die Probleme, die du gerade hast, hatte ich wahrscheinlich schon dreimal.

Irgendwann habe ich angefangen, mein Wissen in Videokurse zu packen. Nicht weil ich gerne vor der Kamera stehe, sondern weil ich dieselben Fragen immer wieder gehört habe. Mittlerweile sind es Hunderte Videos geworden. Jedes Einzelne entstand aus einer konkreten Frage aus einem konkreten Projekt.

Was mich von einem YouTube-Tutorial unterscheidet: Ich kenne nicht nur die Lösung, sondern auch den Kontext. Warum etwas so funktioniert. Wann es nicht funktioniert. Und welche Fehler du dir sparen kannst, weil ich sie schon gemacht habe.

Als Mitglied im TYPO3 Education Committee sorge ich dafür, dass die Zertifizierungsprüfungen auf dem aktuellen Stand bleiben. Was dort geprüft wird, fließt direkt in meine Kurse ein.

Der TYPO3 Newsletter

TYPO3-Insights direkt in dein Postfach! 
Hol dir monatliche Updates, praktische Tipps und spannende Fallstudien. 
Übersichtlich, zeitsparend, ohne Spam. 
Bist du dabei? Jetzt für den Newsletter anmelden!

Trage dich hier ein, um den Newsletter zu erhalten.