Ich habe Probleme beim Zugriff auf einige Bilder aus meinem Speicher auf Shared Hosting.

Beispiel: <my_domain>/storage/captcha/baa5271fe19d696d6e83388a5c22f13c40ecc470.jpg HTML-Seite anzeigen, aber <my_domain>/storage/images/slider1.jpg Bild anzeigen.

Intervention\Image\Facades\Image wird verwendet, um ein Captcha-Bild zu generieren.

Dateisystems.php Konfiguration zum Vergleichen:

        'captcha' => [
            'driver' => 'local',
            'root' => storage_path('app/public/captcha'),
            'url' => env('APP_URL').'/storage/captcha/',
            'visibility' => 'public',
        ],

        'images' => [
            'driver' => 'local',
            'root' =>  storage_path('app/public/images'),
            'url' => env('APP_URL').'/storage/images/',
            'visibility' => 'public',
        ],

Die Berechtigungen für die Speicherung wurden auf 777 festgelegt. Speicher: Link wurde ebenfalls festgelegt.

.htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Es passiert nur beim Shared Hosting , also denke ich, dass es etwas mit .htaccess ist.

0
serpentow 7 Feb. 2020 im 15:50

3 Antworten

Beste Antwort

Die Lösung bestand darin, das Speicherverzeichnis aus der Öffentlichkeit zu löschen und den Befehl storage: link erneut auszuführen.

0
serpentow 7 Feb. 2020 im 14:54

Wenn Sie Shared Hosting verwenden, verwenden Sie den Pfad public anstelle des Pfads storage

    'captcha' => [
            'driver' => 'local',
            'root' => public_path() . '/captcha',
            'url' => env('APP_URL').'/captcha',
            'visibility' => 'public',
        ],

        'images' => [
            'driver' => 'local',
            'root' => public_path() . '/images',
            'url' => env('APP_URL').'/images',
            'visibility' => 'public',
        ],

Und gibt nur Ordnername
an Es funktioniert für mich. Sie können es versuchen.

-1
Kamlesh Paul 7 Feb. 2020 im 12:56

Wenn Sie Shared Hosting verwenden, verwenden Sie den öffentlichen Pfad

'images' => [
            'driver' => 'local',
            'root' =>  public_path() . '/Any folder name of image',
            'url' => env('APP_URL').'/storage/images/',
            'visibility' => 'public',
        ],
-2
Jayshri Ghoniya 7 Feb. 2020 im 13:03