Feature #86962

Asset pipeline: Only include assets for rendered content elements

Added by Soren Malling over 2 years ago. Updated about 1 year ago.

Could have
Target version:
Start date:
Due date:
% Done:


Estimated time:
PHP Version:
Sprint Focus:


Inspired by my teachings after working a bit with Ruby on Rails and the keynote as T3CON18 about speed I would like to present a feature on Asset pipeline for rendered content element.

The idea/concept is as so:

Given the tt_content elements that are being rendered, the TYPO3 rendering engine can include only assets (css/js) that are related to the content element or plugin.

For example. Here is a number of content element in colPos = 0. The idea is not limited to a single colPos, but let's keep it simple :)

[CType: text]
[CType: image]
[CType: Plugin -> Extbase plugin]
[CType: menu_sitemap]

Giving a path configuration similar to how content elements are given a path to it's HTML files

lib.assetPipeline {
  css.10 = EXT:awesomesite/Resources/Public/Assets/Css/Component/

The rendering will look at the rendered CType and look for EXT:awesomesite/Resources/Public/Assets/Css/Component/[CType].css to include into the pageGenerators includeCSS part. If you enable concate and compress css you will have a CSS file build for the content of that site and no bloated CSS/JS stuff.

I created a POC for extbase related rendering. Add this code block to the ActionController -> renderAssetsForRequest() method

        $assetFile = GeneralUtility::getFileAbsFileName('EXT:' . $this->getControllerContext()->getRequest()->getControllerExtensionKey() . '/Resources/Public/Assets/Css/' . $this->getControllerContext()->getRequest()->getControllerName() . '.css');

    if ($assetFile !== '') {
        $file = PathUtility::stripPathSitePrefix($assetFile);

The goal of this feature is to bring down the actual bytes being sent and served on each page load.


Given the dynamic combinations of content this will create a larger number of files than usual


Updated by Benni Mack over 1 year ago

  • Status changed from New to Needs Feedback


you might want to check out https://github.com/b13/assetcollector - if this gains on popularity, I think we should add something like this to Core.


Updated by Georg Ringer about 1 year ago

  • Status changed from Needs Feedback to Resolved

in the meantime, the AssetCollecotr has been added to 10.3 with #90522. therefore I am resolving this issue


Updated by Benni Mack about 1 year ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF