Bird
Raised Fist0
Laravelframework~5 mins

Public disk and symbolic links in Laravel - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the 'public' disk in Laravel?
The 'public' disk in Laravel is used to store files that should be publicly accessible, like images or documents, typically stored in the storage/app/public directory and linked to public/storage.
Click to reveal answer
beginner
What command creates a symbolic link from public/storage to storage/app/public in Laravel?
The command php artisan storage:link creates a symbolic link so that files stored in storage/app/public are accessible from the web via public/storage.
Click to reveal answer
intermediate
Why do we use symbolic links for the public disk in Laravel?
Symbolic links let Laravel serve files stored outside the public folder securely by linking them inside the public directory, making them accessible via URLs without exposing the whole storage folder.
Click to reveal answer
beginner
Where are files stored when using the 'public' disk in Laravel by default?
Files are stored in the storage/app/public directory by default when using the 'public' disk in Laravel.
Click to reveal answer
beginner
What happens if you don't run php artisan storage:link after storing files on the public disk?
If you don't run php artisan storage:link, files in storage/app/public won't be accessible from the web because the symbolic link public/storage won't exist.
Click to reveal answer
What does the php artisan storage:link command do in Laravel?
ACreates a symbolic link from <code>public/storage</code> to <code>storage/app/public</code>
BDeletes all files in the public disk
CCopies files from <code>storage/app/public</code> to <code>public/storage</code>
DCreates a backup of the storage folder
Where are files stored when using Laravel's 'public' disk by default?
A<code>storage/app/public</code>
B<code>public/storage</code>
C<code>resources/public</code>
D<code>storage/public</code>
Why is a symbolic link used for the public disk in Laravel?
ATo encrypt files in storage
BTo copy files automatically
CTo make files accessible via the web without exposing the entire storage folder
DTo delete old files
What happens if you try to access files stored on the public disk without creating the symbolic link?
AFiles will be deleted automatically
BFiles won't be accessible via the web
CFiles will be copied to the public folder
DFiles will be accessible without any issue
Which Laravel filesystem disk is typically linked to public/storage?
As3
Blocal
Cftp
Dpublic
Explain how Laravel uses the public disk and symbolic links to serve files publicly.
Think about where files are stored and how they become accessible via the web.
You got /4 concepts.
    Describe what would happen if the symbolic link for the public disk is missing and how to fix it.
    Consider the role of the symbolic link in file accessibility.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the public disk in Laravel's filesystem?
      easy
      A. To store files that should be accessible publicly via the web
      B. To store configuration files for the application
      C. To keep temporary cache files hidden from users
      D. To store database backups securely

      Solution

      1. Step 1: Understand the role of the public disk

        The public disk is designed to hold files that need to be accessed by users through the web, such as images or documents.
      2. Step 2: Compare with other storage uses

        Other disks like local or private are for internal use, not for public access.
      3. Final Answer:

        To store files that should be accessible publicly via the web -> Option A
      4. Quick Check:

        Public disk = public files [OK]
      Hint: Public disk means web-accessible files [OK]
      Common Mistakes:
      • Confusing public disk with private storage
      • Thinking public disk stores config or cache files
      • Assuming public disk is for backups
      2. Which Artisan command creates a symbolic link from public/storage to storage/app/public?
      easy
      A. php artisan storage:create-link
      B. php artisan make:link
      C. php artisan link:storage
      D. php artisan storage:link

      Solution

      1. Step 1: Recall the correct Artisan command

        Laravel uses php artisan storage:link to create the symbolic link for public storage access.
      2. Step 2: Verify other options

        Other commands listed are not valid Laravel Artisan commands for this purpose.
      3. Final Answer:

        php artisan storage:link -> Option D
      4. Quick Check:

        Storage link command = storage:link [OK]
      Hint: Use 'storage:link' to create public storage link [OK]
      Common Mistakes:
      • Using incorrect Artisan command names
      • Confusing 'make' or 'create' with 'storage:link'
      • Trying to create symbolic links manually without Artisan
      3. Given the following code snippet, what will Storage::disk('public')->url('file.txt') return if the symbolic link is correctly created?
      use Illuminate\Support\Facades\Storage;
      
      $url = Storage::disk('public')->url('file.txt');
      echo $url;
      medium
      A. storage/app/file.txt
      B. http://your-app-url/storage/file.txt
      C. /public/storage/file.txt
      D. /storage/app/public/file.txt

      Solution

      1. Step 1: Understand Storage::url() behavior on public disk

        When the symbolic link is created, Storage::url() returns a URL starting with '/storage/' pointing to the public folder.
      2. Step 2: Confirm the full URL format

        The method returns a full URL including the app's base URL, so it looks like 'http://your-app-url/storage/file.txt'.
      3. Final Answer:

        http://your-app-url/storage/file.txt -> Option B
      4. Quick Check:

        Storage::url() returns public URL [OK]
      Hint: Storage::url() returns full public URL [OK]
      Common Mistakes:
      • Expecting a file system path instead of URL
      • Confusing storage path with public URL
      • Missing the base URL in the returned string
      4. You ran php artisan storage:link but your files in storage/app/public are not accessible via the browser. What is the most likely cause?
      medium
      A. You forgot to clear the application cache
      B. The files are not readable by the web server
      C. The symbolic link was not created or points to the wrong folder
      D. The public disk is not configured in config/filesystems.php

      Solution

      1. Step 1: Check the symbolic link existence and target

        If the symbolic link is missing or points incorrectly, files won't be accessible via public/storage.
      2. Step 2: Consider other causes but focus on link

        While file permissions matter, the most common cause after running the command is a failed or incorrect link creation.
      3. Final Answer:

        The symbolic link was not created or points to the wrong folder -> Option C
      4. Quick Check:

        Broken or missing link = no public access [OK]
      Hint: Check symbolic link path if files not accessible [OK]
      Common Mistakes:
      • Assuming cache clearing fixes symbolic link issues
      • Ignoring file permissions as a cause
      • Not verifying the link target folder
      5. You want to serve user-uploaded images stored in storage/app/public/images via the web. Which steps correctly set this up in Laravel?
      hard
      A. Run php artisan storage:link and access images via /storage/images/filename.jpg
      B. Move images to public/images and access directly without symbolic links
      C. Configure a new disk in config/filesystems.php pointing to public/images and use Storage::url()
      D. Create a route to read files from storage/app/public/images and return them manually

      Solution

      1. Step 1: Create symbolic link for public storage

        Running php artisan storage:link creates a link from public/storage to storage/app/public, making files accessible.
      2. Step 2: Access images via the public URL path

        Files inside storage/app/public/images are then accessible at /storage/images/filename.jpg.
      3. Final Answer:

        Run php artisan storage:link and access images via /storage/images/filename.jpg -> Option A
      4. Quick Check:

        Symbolic link + /storage/ URL = public access [OK]
      Hint: Use storage:link and /storage/ URL for public files [OK]
      Common Mistakes:
      • Moving files manually instead of linking
      • Not using the symbolic link and expecting direct access
      • Overcomplicating with custom routes unnecessarily
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard