Projekt

Allgemein

Profil

Aktionen

Bug #111

offen

[Bugsink] TYPO3Fluid\Fluid\Core\ViewHelper\Exception: Unable to render image uri in "tt_content:6210": You must either specify a string src or a File object.

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
24.08.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/9512ec41-42b7-4d43-b239-99304ee95252/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

TYPO3Fluid\Fluid\Core\ViewHelper\Exception: Unable to render image uri in "tt_content:6210": You must either specify a string src or a File object.


Automatisch erstellt durch n8n

KI-Analyse:

Hier ist die präzise Analyse des Fehlers als Senior TYPO3/PHP Entwickler:


1. Ursache identifizieren

Der Fehler tritt auf, wenn der Fluid ViewHelper für Bilder (<f:image> oder <f:uri.image>) in einem tt_content-Element mit der UID 6210 versucht, eine Bild-URI zu rendern, ohne dass eine gültige Quelle (src) oder ein File-Objekt (z. B. aus FAL) übergeben wurde.

Konkrete Ursachen:

  • Fehlende oder ungültige src-Angabe:
    Der ViewHelper erwartet entweder:

    • Einen String-Pfad (z. B. fileadmin/images/beispiel.jpg), oder
    • Ein File-Objekt (z. B. aus dem TYPO3 File Abstraction Layer, FAL).
    • Wird keines von beiden übergeben, wirft Fluid die Exception.
  • Typischer Auslöser im tt_content-Kontext:

    • Ein Bild- oder Textmedia-Content-Element (z. B. Typ textmedia) hat kein Bild zugeordnet (leeres Feld im Backend).
    • Ein Custom-Content-Element oder Extension-Template verwendet den ViewHelper falsch (z. B. mit einer leeren Variable).
    • Ein TypoScript-Rendering (z. B. lib.contentElement) übergibt keine gültige Bildreferenz.
  • Technischer Hintergrund:
    Die Exception stammt aus der Klasse \TYPO3\CMS\Fluid\ViewHelpers\Uri\ImageViewHelper (oder \TYPO3\CMS\Fluid\ViewHelpers\ImageViewHelper), die in der Methode render() prüft:

    if ($src === null && $image === null) {
        throw new Exception('You must either specify a string src or a File object.');
    }
    

2. Fix beschreiben (konkret)

Lösungsansätze (je nach Kontext):

A) Backend-Fix (für tt_content:6210)
  1. Backend prüfen:

    • Öffne das Content-Element mit der UID 6210 im TYPO3-Backend.
    • Stelle sicher, dass im Feld "Bilder" (oder dem relevanten Feld für Medien) mindestens ein Bild ausgewählt ist.
    • Falls kein Bild benötigt wird, entferne den ViewHelper aus dem Template oder füge eine Fallunterscheidung hinzu.
  2. Feld-Konfiguration prüfen:

    • Falls das Feld leer sein darf, aber der ViewHelper trotzdem gerendert wird, passe das TypoScript oder Fluid-Template an:
      <f:if condition="{image}">
          <f:image image="{image}" alt="Beschreibung" />
      </f:if>
      
B) Template-Fix (Fluid)
  • ViewHelper korrekt verwenden:

    <!-- Option 1: Mit FAL-Objekt (empfohlen) -->
    <f:image image="{file}" alt="Beschreibung" />
    
    <!-- Option 2: Mit String-Pfad (nur für statische Pfade) -->
    <f:image src="fileadmin/images/beispiel.jpg" alt="Beschreibung" />
    
  • Null-Check einbauen:

    <f:if condition="{file}">
        <f:image image="{file}" alt="Beschreibung" />
    </f:if>
    
C) TypoScript-Fix

Falls das Bild über TypoScript gerendert wird (z. B. in lib.contentElement), prüfe die Datenquelle:

10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
10 {
    references.fieldName = image
    as = images
}

Stelle sicher, dass das Feld image im tt_content-Datensatz existiert und gefüllt ist.

D) Extension-spezifischer Fix

Falls eine Custom-Extension den ViewHelper nutzt:

  • Prüfe, ob die Variable {image} im Controller korrekt gesetzt wird:
    $this->view->assign('image', $fileObject); // Muss ein File-Objekt sein!
    
  • Oder ob ein leerer Wert übergeben wird (z. B. durch eine falsche Datenbankabfrage).

3. Betroffene TYPO3 Extension

  • Core-Extension: fluid (genauer: typo3/cms-fluid)
    • Der Fehler stammt aus dem Fluid ViewHelper-System, das in TYPO3 integriert ist.
  • Indirekt betroffen:
    • frontend (für tt_content-Rendering)
    • fluid_styled_content (falls das Content-Element über diese Extension gerendert wird)
    • Custom-Extensions, die den <f:image>-ViewHelper nutzen.

4. Confidence

  • 95% Confidence für die Ursache (fehlende src/File-Angabe im ViewHelper).
  • 90% Confidence für den Fix (abhängig vom konkreten Kontext des tt_content-Elements).
    • Die genaue Lösung hängt davon ab, ob das Problem im Backend, Template oder TypoScript liegt.

Zusätzliche Empfehlungen

  1. Debugging-Tipp:

    • Gib die Variable im Template aus, um zu prüfen, was übergeben wird:
      <f:debug>{file}</f:debug>
      
    • Oder prüfe den tt_content-Datensatz direkt in der Datenbank:
      SELECT * FROM tt_content WHERE uid = 6210;
      
  2. Logging:

    • Aktiviere das TYPO3-Logging für Fluid-Exceptions, um ähnliche Fehler schneller zu identifizieren:
      // In LocalConfiguration.php oder AdditionalConfiguration.php
      $GLOBALS['TYPO3_CONF_VARS']['LOG']['TYPO3']['CMS']['Fluid']['writerConfiguration'] = [
          \TYPO3\CMS\Core\Log\LogLevel::ERROR => [
              \TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
                  'logFile' => 'typo3temp/logs/fluid_errors.log'
              ]
          ]
      ];
      
  3. Unit-Tests:

    • Falls du eine Custom-Extension entwickelst, teste den ViewHelper mit leeren Werten:
      public function testImageViewHelperThrowsExceptionWithoutSource(): void
      {
          $this->expectException(\TYPO3Fluid\Fluid\Core\ViewHelper\Exception::class);
          $this->renderViewHelper(['src' => null, 'image' => null]);
      }
      

Zusammenfassung

Punkt Details
Ursache Fehlende src oder File-Objekt im <f:image>-ViewHelper (UID 6210).
Fix Bild im Backend zuweisen oder Template/TypoScript anpassen.
Betroffene Ext. fluid (Core), frontend, fluid_styled_content.
Confidence 95% (Ursache), 90% (Fix).

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF