Eigenes Template wird im Production-Modus nicht geladen (gelöst)

Ich habe ein Problem mit einem Theme auf App-Basis. Ich erweitere mit einem Zusatzfeld die Produkte, um einen zusätzlichen Tab auf der Detailseite anzuzeigen.

views/storefront/page/product-detail/tabs.html.twig

{% block page_product_detail_tabs_content_description %}
    {{ parent() }}

    {% if page.product.customFields and page.product.customFields.areanet_standardtheme_products_tab_1 %}
        <div class="tab-pane fade show"
                id="tab-one-pane"
                role="tabpanel"
                aria-labelledby="tab-one">
            {% sw_include '@AreanetStandardtheme64/abettercms/page/product-detail/tab-one.html.twig' %}
        </div>
    {% endif %}
{% endblock %}

views/abettercms/page/product-detail/tab-one.html.twig

{% sw_extends '@Storefront/storefront/utilities/offcanvas.html.twig' %}

{% block utilities_offcanvas_content %}
    {{ page.product.customFields.areanet_standardtheme_products_tab_1|raw }}
{% endblock %}

Im dev-Modus funktioniert alles wie es sollte. Sobald ich auf den Production-Mode umschalte, kann wird das Template ‚views/abettercms/page/product-detail/tab-one.html.twig‘ nicht gefunden.

Das Problem ist, dass es nicht in die Datenbank-Tabelle app_template eingetragen wird.

Deinstallation, Reinstallation, Cache leeren bringt nichts. Ich habe es zudem mit einer Clean-Installation 6.4.20 im Prod-Mode getestet. Theme-App als ZIP hochgeladen, installiert, aktiviert und dem Saleschannel zugewiesen. Aber die Datenbankeinträge für die Templates in ‚views/abettercms/‘ werden nicht angelegt.

Seit wann werden twig-Templates in dieser Datenbank gespeichert? :face_with_raised_eyebrow:

Wenn etwas in dev tut aber prod nicht, dann liegt es in aller Regel an

  • eine Funktion wird verwendet, die nicht in prod zur Verfügung steht (wirft in der Regel dann einen Fehler)
  • es liegt am Cache APC, OPcache, etc.
  • in der Konfiguration sind unterschiedliche Einstellungen für prod und dev angegeben.

Da es im Dev funktioniert, tippe ich stark auf externer Cache. In dem Fall den mal leeren.

Seit wann werden twig-Templates in dieser Datenbank gespeichert? :face_with_raised_eyebrow:

Weiß nicht seit wann, ist aber im prod-Mode definitiv so. Die Templates werden aus der Datenbank gezogen, siehe Rückmeldung von Shopware:

Please ensure that you reinstall your app in prod mode after you made changes to the templates. in prod mode the template content is loaded from the database and the templates are synced into the database on app install or app update.

So wie es aussieht ein Bug von Shopware. Die Templates müssen von „views/abettercms/…“ nach „views/storefront/abettercms/…“ verschoben werden, dann werden sie bei der Installation/Aktualisierung korrekt in die Datenbank synchronisiert.

Templates, die außerhalb „view/storefront“ liegen, funktionieren im Prod-Mode aktuell nicht.

Ich habe das viel verwendete Wort „App“ x-Mal überlesen. Bei Plugins ist das nicht der Fall.

Danke fürs teilen der Lösung.

1 „Gefällt mir“