Bild aus Plugin einbinden führt zu 404-Fehler

Hallo Zusammen,

ich beginne erst mit der Plugin Programmierung und fürchte, ich stehe schon auf dem Schlauch. Ich möchte ein Bild aus einem Plugin einbinden. Das Template Verzeichnis habe ich entsprechend eingebunden:

public function onDetail(\Enlight_Controller_ActionEventArgs $args)
{
	$config = $this->getShopConfig();
	if (!$config['active']) {
		return;
	}
	$this->container->get('template')->addTemplateDir(
		$this->getPath() . '/Resources/views/'
	);
}

Das Bild liegt im Unterordner ‘/Resources/views/_public/src/img/test.png’.

Meine Template Datei sieht so aus:

{extends file='parent:frontend/detail/buy.tpl'}
{block name="frontend_detail_buy_button_container_outer" append}
    
{/block}

Rufe ich die Seite auf wird folgende Url mit einem 404-Fehler versucht zu laden:

https://www.meine-domain.com/frontend/_resources/img/test.png

Ist die Url falsch, oder wir das Bild nicht entsprechend an die korrekte Stelle kopiert? Grundsätzlich liegt das Bild ja eigentlich im Ordner ‘custom/plugins/MeinPlugin/Resources/views/frontend/_public/src/img’, darauf verweist die Url aber nicht. Was mache ich falsch?

versuch mal:
custom/plugins/MeinPlugin/Resources/views/frontend/_resources/img/test.png

1 „Gefällt mir“

Danke für das schnelle Feedback, das würde soweit funktionieren. Aber ist es tastächlich Best Practice direkt auf den Ordner des Plugins zu verweisen? Warum liegt das Bild dann im Ordner ‘_public/src/img’ liegen, was genau der Struktur des Templates entsprechend würde?

Ich habe angenommen, die Assets aus den _public Verzeichnissen der Plugins würden, ähnlich wie bei Symfony selbst, kopiert und an zentraler Stelle zur Verfügung gestellt.

Nachtrag: Ich hatte mir das Ganze hier angesehen: Smarty Plugins

Dort steht: “By using the link plugin you only have to define the path relative to your own theme directory.”

Gilt das nicht für Plugins, sondern nur für das Theme selbst? Ich hatte das so verstanden, dass …

… automatisch den korrekten Pfad für das Bild ermitteln würde.