Contao-Camp 2024
Ergebnis 1 bis 10 von 10

Thema: [gelöst] seltsames Verhalten beim Zugriff auf assets unter web/bundles/{BundleName}

  1. #1
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard [gelöst] seltsames Verhalten beim Zugriff auf assets unter web/bundles/{BundleName}

    Hallo in die Runde,

    ich quäle mich mit einem äußerst seltsamen Verhalten bei der Entwicklung eines Widgets für das BE unter C4.10.6 unter laragon, installiert mit dem neuen contao-manager 1.3.3-23-g418e1e50.

    Ich möchte am Backend ein einfaches png mit Hilfe der Funktion Image::getHtml() aus meinem assets-Ordner laden. Der befindet sich korrekt unter src/Ressources/public und ist korrekt von composer install nach web/bundles "gesymlinked" worden.

    Image::getHtml erstellt nun korrekt ein <img> Tag, welches auch korrekt auf den Speicherort zeigt, jedoch erhalte ich ein 403 Forbidden in der Entwicklerkonsole und das Bild wird nicht angezeigt.

    Erstaunlicherweise kann ich zu Testzwecken dem benachbarten assets-Orden meine Bilder "unterschieben". So habe ich, um zu testen, meine Bilder nach web/bundles/contaocalendar/ kopiert. Von dort liefert Contao und laragon diese richtig aus. Wenn ich sie in meinen bundle-spezifischen Ordner kopiere, dann liefert Contao sie nicht mehr aus. Das sehe ich, weil das alt-attribut angezeigt wird und das eigentlich Bild nicht.

    Nun habe ich meinen Symlink in web/bundles/ mehrfach gelöscht und neu erstellt.
    Auch habe ich ein composer install ausgeführt. Alles läuft glatt durch...
    Es bleibt bei einem 403 Forbidden und und die Bilder werden nicht ausgeliefert.
    Das Contao log zeigt keinen mit dem Problem assoziierten Eintrag.

    Das Apache log zeigt den Fehler:
    [Wed Jan 27 13:32:32.794008 2021] [core:error] [pid 9256:tid 1128] (OS 4392) Die im Analysepunktpuffer vorhandenen Daten sind ungültig. : [client 127.0.0.1:52564] AH00127: Cannot map GET /bundles/myBundleName/img/img1.png HTTP/1.1 to file, referer: https://server.test/start-test.html

    Hat jmd. vielleicht einen Tip? Das ist alles sehr "strange"!

    Vielen Dank
    Theo
    Geändert von theobald (27.01.2021 um 16:04 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard Fehler gefunden:

    Es ist etwas kompliziert: Der Symlink vom www/bundles/myBundleName zeigte (bei mir) auf C:/PHPStormProjects/myProject und dort auf den Assets-Ordner /src/Ressources/public.

    Das darf scheinbar nicht sein!

    Das Symlink-Ziel muss sich immer im Ordner der zugehörigen Contao-Installation befinden und dort unter vendor/myVendor/myBundleName ..., ist das nicht der Fall, kann Apache die Bilder nicht ausliefern, weil er (in der Regel) unter einem anderen User läuft als der Besitzer von PHPStormProjects.... daher kam (bei mir) ein 403 Forbidden...

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.900
    Partner-ID
    10107

    Standard

    Hattest du selbst irgendwelche Symlinks angelegt?

  4. #4
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard

    ja ich verlinke meine Projekt immer per Hand, weil es als repository path angegeben ist... das eigentliche Projekt liegt immer im PHPStormProjects und unter laragon/www befindet sich dann nur ein Symlink auf PHPStormProjects/myProject/web... das scheint aber bisweilen Contao zu irritieren...

    ist das überhaupt der übliche Weg?

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.900
    Partner-ID
    10107

    Standard

    Zitat Zitat von theobald Beitrag anzeigen
    ist das überhaupt der übliche Weg?
    Nein, Symlinks solltest du nicht selbst anlegen.

  6. #6
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard

    wie machts Du das, wenn Du das Contao-Projekt (oder nur den bundle-code) beispielsweise im Ordner PHPStormProjects liegen hast und das laragon/www woanders? Wie stellts Du da die Verbindung her?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.900
    Partner-ID
    10107

    Standard

    Wenn du ein Bundle bzw. Paket hinzufügen willst, welches nur Lokal irgendwo anders auf deinem System existiert, kannst du das als Path Repository eintragen:
    Code:
    {
        "repositories": {
            "mypackage": {
                "type": "path",
                "url": "/absolute/path/to/package"
            }
        }
    }
    Der Pfad kann auch relativ sein.

  8. #8
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard

    ok! danke! aber so habe ich das auch in meiner composer.json drin.

    aber dann muss ich ja bei jedem Ändern des Codes wärend der Entwicklung ein composer install ausführen, damit er aus dem path-repository nachlädt - oder setzt er innerhalb der zugrunde liegenden Contao-Installation alle nötigen Symlinks direkt auf mein Entwicklerverzeichnis (PHPStormProjects etc.)?

    Das ist mir leider noch nicht so ganz klar...

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.900
    Partner-ID
    10107

    Standard

    Nein, wenn du das so gemacht hast, sollte Composer das als Symlink installieren. Außer du hast Symlinks für Composer global deaktiviert.

  10. #10
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard

    ok! Danke! Das wusste ich noch nicht! Prima!
    Viele Grüße nach Vienna!
    Theo

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
  •