Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: vue.js in Contao einbinden

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    502

    Standard vue.js in Contao einbinden

    Hi,

    ich hab mir mit der Vue CLI 3 ein kleines Projekt zusammengebastelt.
    Mit "npm run build" hat mir die Vue CLI im dist-Folder alle Dateien zusammengestellt, welche für den produktiven Einsatz bestimmt sind.
    Diese Dateien habe ich in das "web" Verzeichnis von Contao hochgeladen.

    Damit Contao das dist-Verzeichnis nicht als Contao-Seite betrachtet,
    habe ich eine htaccess mit dem Inhalt "RewriteEngine Off" in das dist-Verzeichnis gegeben.

    D.h. ich kann die Vue-App nun unter folgender URL aufrufen:
    www.mycontao.com/dist/

    Das funktioniert soweit.


    Meine Vue-App enthält eine Auflistung von Immobilien.
    Zu jeder dieser Immobilien gibt es eine Detailseite.
    Die URL so einer Detailseite lautet zb.:
    www.mycontao.com/dist/meine-erste-immobilie

    Auch der Aufruf dieser Detailseite funktioniert.
    So, und jetzt kommt mein Problem:
    Wenn eine Detailseite mit einem Browser-Refresh neu geladen wird, bekomme ich eine 404-Meldung.

    Ich nehme an dass das hier die Ursache ist:
    https://router.vuejs.org/guide/essen...configurations

    Die Lösung besteht lt. diesem Artikel darin, den Server per htaccess umzukonfigurieren.
    Und zwar so:

    Code:
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /dist/
      RewriteRule ^index\.html$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.html [L]
    </IfModule>
    ... wenn ich diesen Snippet in die htaccess des dist-Verzeichnises einfüge, muss ich aber die RewriteEngine wieder aktivieren.
    (Sonst kann ja das Snippet nicht greifen, oder?)
    ... jedoch wenn die RewriteEngine wieder aktiviert ist, funkt mir Contao wieder dazwischen
    D.h. ich bekomme dann beim Aufruf einer Detailseite eine Contao-404-Meldung.


    Hat von euch jemand vielleicht eine Lösung für dieses Problem?


    Hier ist meine Baustelle die das Problem zeigt:
    https://www.athos.at/dist/
    ... zur Detail-Seite einer Immobilie gelangt man durch den Klick auf einen der Teaser.


    Vielen Dank für eure Hilfe!
    lg
    Geändert von thesweetg (13.05.2020 um 15:22 Uhr)

  2. #2
    Contao-Fan Avatar von joe
    Registriert seit
    20.06.2009.
    Ort
    Lüneburg
    Beiträge
    687
    User beschenken
    Wunschliste

    Standard

    Der einfachste Weg das Problem zu umgehen ist es den History Mode des Vue Routers zu deaktivieren und den Default Hash Mode zu verwenden.

    Wenn du den History Mode dennoch nutzen möchtest musst du natürlich alle requests auf die index.html in deinem dist Ordner umleiten.

    Melde dich sonst gerne via Direktnachricht bei mir wenn du Hilfe brauchst. Ich bin Vue.js Coach
    Trainings und Coachings zur Fort und Weiterbildung sowie Beratung in den Bereichen Contao, JavaScript, jQuery, VueJS, React, PHP, NodeJS und vielen weiteren Themen.

    Mehr unter jgreg.dev

    Follow me on Twitter @JoeRayGregory

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •