Bird
Raised Fist0
Laravelframework~10 mins

Public disk and symbolic links in Laravel - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a symbolic link for the public disk in Laravel.

Laravel
php artisan storage:[1]
Drag options to blanks, or click blank then click option'
Alink
Bmake
Ccreate
Dinstall
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'make' or 'create' instead of 'link' causes the command to fail.
Forgetting to run this command after configuring the public disk.
2fill in blank
medium

Complete the code to define the public disk in Laravel's config/filesystems.php.

Laravel
'public' => [
    'driver' => 'local',
    'root' => storage_path('app/[1]'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
],
Drag options to blanks, or click blank then click option'
Aapp
Bstorage
Cpublic
Dfiles
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'storage' or 'app' instead of 'public' causes files to be stored in the wrong place.
Not matching this folder with the symbolic link target.
3fill in blank
hard

Fix the error in the code to store a file on the public disk.

Laravel
Storage::disk('[1]')->put('example.txt', 'Hello World');
Drag options to blanks, or click blank then click option'
Alocal
Bprivate
Cdefault
Dpublic
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'local' stores files in storage/app but not publicly accessible.
Using 'private' or 'default' disks that may not exist or have wrong permissions.
4fill in blank
hard

Fill both blanks to generate a URL for a file stored on the public disk.

Laravel
$url = Storage::disk('[1]')->[2]('example.txt');
Drag options to blanks, or click blank then click option'
Apublic
Burl
Cpath
Dlocal
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'path' instead of 'url' returns the server path, not a web URL.
Using 'local' disk returns a path not accessible publicly.
5fill in blank
hard

Fill all three blanks to check if a file exists on the public disk and delete it if it does.

Laravel
if (Storage::disk('[1]')->[2]('example.txt')) {
    Storage::disk('[3]')->delete('example.txt');
}
Drag options to blanks, or click blank then click option'
Apublic
Bexists
Clocal
Dmissing
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'missing' instead of 'exists' reverses the logic.
Using different disks for check and delete causes unexpected behavior.

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