Fluid file reloads
Save a Fluid template, partial, component, or ViewHelper. Rendered-file tags identify every page that used it.
- Knows which files each page rendered
- Uses the existing Vite dev server
- Keeps normal CSS and JavaScript HMR
Targeted live reload for TYPO3
Save a Fluid file or content in the TYPO3 backend. Only browser tabs that use the changed file or record reload. Other tabs keep their state.
TYPO3 13.4 or 14.3+ · PHP 8.2+ · Open source
HomeTeaser.htmltt_content_42What it reloads
A browser tab reloads when its rendered tags overlap with the tags of a change.
Save a Fluid template, partial, component, or ViewHelper. Rendered-file tags identify every page that used it.
Save a page, content element, or another record. TYPO3 cache tags identify every open page that shows it.
How it works
For example, file:packages/site/Partials/Teaser.html or tt_content_42.
Vite pushes them over its WebSocket. Without Vite, logged-in editors can use polling.
A matching tab reloads. A tab without a match does nothing.
Setup
This activates content reloads in the Development context.
$ composer require --dev wazum/typo3-live-reload
Upgraded sites must enable the frontend.cache.autoTagging feature toggle — it is on by default only for new TYPO3 installations. Without it, content reloads only trigger for edits on the exact page you are viewing.
This enables targeted reloads for Fluid files and ViewHelpers. The plugin is included in the Composer package; no npm package is needed.
import { defineConfig } from 'vite'
import { liveReload } from
'./vendor/wazum/typo3-live-reload/Resources/Private/Vite/dist/index.js'
export default defineConfig({
plugins: [
liveReload({ watch: { paths: ['packages'] } }),
],
})
Practical details
Outside Development, only logged-in backend users receive live reload on explicitly allowed contexts.
Broadcasting happens after the response. A failed broadcast never breaks an editor action.
Injected scripts automatically use TYPO3's Content Security Policy nonce.
Pause a session in the Admin Panel or replace the reload with Turbo or your own browser code.
Live Reload for TYPO3