Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

hugo_HDS's avatar

laravel : symlink storage in public not working " 404 (not found)"

when I try to visualise my picture with this basic url on google :

domain.com/storage/transports/picture.png

I get (404) not found.

(I don't have this error for a file outside the storage symlink in my tree picture and I can totaly see it without any problems) exemple :

domain.com/logo.svg

I have used php artisan storage:link to create the symlink, so far I'm abble to store the pictures exactly where I want to with that controller :

public function storeTransports(Request $request)
    {
        try{
            session(['content'=>'content_transports']);

            $request->validate([
                'name' => [ 'string', 'max:255'],
                'picture' => [ 'required','image','mimes:jpeg,png,jpg,gif,svg', 'max:2048']
            ]);

            if(Transport::where('name', $request->name)->first()){
                return redirect(RouteServiceProvider::HOME)->with('error_transports', 'Transport already exists');
            }
            else{
                if($request->hasFile('picture')){
                    $sanitized_image_name = strtolower(preg_replace("([^A-Za-z0-9])", "", $request->name)).'_'.time();
                    $image_name = $sanitized_image_name.'.'.$request->picture->extension();

                    Transport::create([
                        'name' => $request->name,
                        'path_picture' => $image_name
                    ]);

                    $request->picture->storeAs('public/transports',$image_name);
                }
            }

            return redirect(RouteServiceProvider::HOME)->with('success_transports', 'Transport saved successfully');
        } catch (\Illuminate\Database\QueryException $e){
            return redirect(RouteServiceProvider::HOME)->with('error_transports',$e->errorInfo);
        }
    }

I can also visualize my pictures in my public folder :

i've rm rf public/storage many times already

here is my configfiles.php :

<?php

return [


    'default' => env('FILESYSTEM_DISK', 'public'),


    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
            'throw' => false,
        ],

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

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
            'throw' => false,
        ],

    ],

    'links' => [
        public_path('storage') => storage_path('app/public'),
    ],

];

I appreciate your help, I've been looking at all the stackoverflow talking about that for the past hour.

PS: I don't use vagrant.

0 likes
1 reply
hugo_HDS's avatar

I can't add links since it's my first day loged in so i can't rly show you any screens

Please or to participate in this conversation.