Zum Inhalt springen

Favicons & Web-App-Manifest

So funktionieren Favicons in mpc/mp-core: Asset-Dateien, Fluid-Partial, Website-Konfiguration und das optionale Tool RealFaviconGenerator.

MP-Core Logo
 

Ersetzen Sie Resources/Private/Partials/Page/Favicons.html durch statisches HTML aus RealFaviconGenerator. Das Partial ist eine Fluid-Vorlage, die die Website-Konfiguration ausliest (oder auf gebündelte Dateien unter Resources/Public/Favicons/).

 

Architektur

 
flowchart LR
  subgraph assets [Static assets]
    BuildStatic["Build/Assets/Static/Favicons/"]
    Public["Resources/Public/Favicons/"]
    BuildStatic -->|Vite publicDir| Public
  end
  subgraph site [Site configuration]
    SiteCfg["config/sites/*/config.yaml\n(site.configuration.*)"]
  end
  subgraph output [Frontend head]
    Partial["Favicons.html\nheaderData 2039"]
    Manifest["Manifest.html\npageType 8412"]
    Partial --> SiteCfg
    Partial --> Public
    Manifest --> Public
  end
PieceStandortRolle
Favicon-DateienBuild/Assets/Static/Favicons/Resources/Public/Favicons/Von Vite kopiert (publicDir); Standard-Fallbacks
Head-PartialResources/Private/Partials/Page/Favicons.htmlGibt <link rel="icon">, Manifest-Link, optionale Seiten-Meta
TypoScriptConfiguration/TypoScript/Setup/Page/Page.Favicon.typoscriptpage.headerData.2039 = FLUIDTEMPLATE
Überschreibung der Site-EinstellungpageFaviconsFileAlternativer Teilpfad (95.SitePresentationOverrides.typoscript)
Dynamisches ManifestConfiguration/TypoScript/Setup/40.Page.Scripts.typoscripttypeNum = 8412Manifest.html (JSON)
Site-Felder (Backend)Configuration/SiteConfiguration/Overrides/sites.phpDateiverknüpfungsfelder im Website-Datensatz

Laufzeitverhalten (Favicons.html)

Eingebunden über page.headerData.2039 (siehe Page.Favicon.typoscript und pageFaviconsFile in den Website-Einstellungen).

Favicon-Links

Wenn einer dieser Konfigurationsschlüssel für die Website gesetzt ist, wird der websitespezifische Zweig verwendet:

  • favicon-96x96-png
  • faviconIco
  • faviconSvg
  • apple-touch-icon
  • webmanifest
Site-FeldAusgabe
favicon-96x96-png<link rel="icon" sizes="96x96" type="image/png">
faviconIco<link rel="shortcut icon">
faviconSvg<link rel="icon" type="image/svg+xml">
apple-touch-icon<link rel="apple-touch-icon" sizes="180x180">
webmanifest<link rel="manifest"> → verknüpfte FAL-Datei
(keine „webmanifest“-Datei)<link rel="manifest" href="{f:uri.page(pageType: 8412)}"> → dynamisches JSON

Wenn keiner dieser Schlüssel gesetzt ist, werden die Standardwerte aus der Erweiterung verwendet:

DateiPfad
PNG 96×96EXT:mp_core/Resources/Public/Favicons/favicon-96x96.png
ICOEXT:mp_core/Resources/Public/Favicons/favicon.ico
SVGEXT:mp_core/Resources/Public/Favicons/favicon.svg
Apple TouchEXT:mp_core/Resources/Public/Favicons/apple-touch-icon.png
Manifestf:uri.page(pageType: 8412) (dynamisch)

Alle href Werte durchlaufen f:uri.image (Website-Dateien) oder f:uri.page (Manifest).

Zusätzliche <meta> Tags (dasselbe Partial)

Wenn Seitendaten verfügbar sind:

BedingungMeta-Tag
{data.keywords}keywords
{data.lastUpdated}last-modified
{data.author}author
{data.author_email}email

Site-Eintrag (Backend)

Site-Verwaltung → Sites → [Site] → Konfiguration — Registerkarte „Favicons“ (sites.php):

FeldZweck
favicon-96x96-pngPrimäres PNG-Favicon
faviconIcofavicon.ico
faviconSvgSVG-Favicon
apple-touch-iconiOS-Startbildschirm
webmanifestStatische site.webmanifest Datei (optional; andernfalls dynamisches Manifest)
web-app-manifest-192x192PWA-Symbol 192×192 (für statische Manifest-Pakete)
web-app-manifest-512x512PWA-Symbol 512×512

Dateiverknüpfungen in der Benutzeroberfläche oder in config/sites/[site]/config.yaml, zum Beispiel:

 
faviconSvg: 't3://file?uid=123'
favicon-96x96-png: 't3://file?uid=124'
 

Bezeichnungen und Hinweise: Resources/Private/Language/locallang_db.xlf (site.configuration.*).

Dynamisches Web-Manifest (pageType 8412)

Definiert in Configuration/TypoScript/Setup/40.Page.Scripts.typoscript:

  • URL: auf derselben Seite wie typeNum=8412 (via f:uri.page(pageType: 8412) in Favicons.html)
  • Vorlage: Resources/Private/Partials/Page/Manifest.html
  • Content-Type: application/manifest+json, 24 Stunden zwischenspeicherbar

Manifest.html erstellt JSON mit:

  • name / short_name aus site.configuration.pwaName / pwaShortName, sonst Seitentitel / Kennung
  • Symbole: web-app-manifest-192x192.png und web-app-manifest-512x512.png unter Resources/Public/Favicons/
  • Standard theme_color / background_color: #333333

Optionale PWA-Schlüssel (pwaName, pwaShortName) können in config.yaml , obwohl sie noch nicht in sites.php TCA registriert sind.

Erstellen/Aktualisieren von Icon-Dateien

Verwenden Sie RealFaviconGenerator, wenn Sie einen vollständigen Icon-Satz benötigen (ICO, PNG-Größen, Apple Touch, Manifest-Icons).

Option A – Website (schnell)

  1. Laden Sie das Master-Bild hoch (512×512 PNG oder SVG empfohlen).
  2. Laden Sie die ZIP-Datei herunter.
  3. Entpacken Sie es in „Build/Assets/Static/Favicons/“ (nicht direkt in Resources/Public/ direkt).
  4. Von Build/: npm run build oder npm run watch (kopiert statische Assets nach Resources/Public/Favicons/).

Option B – CLI (CI-freundlich)

Beispiel unter Verwendung der eingecheckten Build/favicon-settings.json (passen Sie path, Namen und Farben für Ihr Projekt an):

 
cd Build
npx realfavicon generate ./Assets/Images/favicon.png favicon-settings.json favicon-output.json ./Assets/Static/Favicons
npx realfavicon inject favicon-output.json ./Assets/Static/Favicons ./Assets/Static/Favicons/output.html
npm run build
 

Generierte Artefakte:

DateiVerwenden Sie
favicon-output.jsonGenerator-Metadaten (optional in VCS)
output.htmlNur als Referenz – statische Beispiel-Tags <head> Tags; nicht in Favicons.html
Icon-Dateien ein + site.webmanifestAusgeliefert über Vite an Resources/Public/Favicons/

Aktualisieren path in favicon-settings.json , um sie an Ihren bereitgestellten Asset-Pfad anzupassen, falls Sie Icons über ein festes URL-Präfix bereitstellen.

Erwartete Dateinamen (Standardwerte)

Nach einer vollständigen Generierung sollten diese unter Resources/Public/Favicons/:

  • favicon.svg, favicon.ico, favicon-96x96.png
  • apple-touch-icon.png
  • web-app-manifest-192x192.png, web-app-manifest-512x512.png
  • site.webmanifest (optional, wenn Sie nur ein dynamisches Manifest verwenden)

Website-Einstellungen

SchlüsselStandard
pageFaviconsFileEXT:mp_core/Resources/Private/Partials/Page/Favicons.html

Überschreiben in den Website-Einstellungen oder settings.yaml nur, wenn Sie ein benutzerdefiniertes Fluid-Partial bereitstellen.

Validierung

  • RealFaviconGenerator-Favicon-Prüfung
  • Im Browser: <head> Links und fordere ?type=8412 nach Manifest-JSON
  • CLI-Update-Prüfung (falls vorhanden favicon-output.json): npx real-favicon check-for-update favicon-output.json

Zugehörige Dokumentation

  • Konfiguration — Site config.yaml Felder
  • Frontend — Vite publicDir und statische Assets
  • Backend – Benutzeroberfläche zur Website-Konfiguration

Seite teilen