Challenge - 5 Problems
Try_files Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate1:30remaining
What happens when try_files finds the first file?
Given this nginx configuration snippet:
What will nginx serve if the requested file
location /images/ {
try_files $uri /default.jpg;
}What will nginx serve if the requested file
/images/logo.png exists on the server?Nginx
location /images/ {
try_files $uri /default.jpg;
}Attempts:
2 left
💡 Hint
Try_files checks each file in order and serves the first one that exists.
✗ Incorrect
The try_files directive checks if the requested file exists. If it does, nginx serves it directly without moving to the fallback.
💻 Command Output
intermediate1:30remaining
What is the output when all try_files options fail?
Consider this nginx config:
If the requested file
location /docs/ {
try_files $uri /index.html =404;
}If the requested file
/docs/manual.pdf does not exist, what will nginx do?Nginx
location /docs/ {
try_files $uri /index.html =404;
}Attempts:
2 left
💡 Hint
Try_files tries each option in order until one exists or a fallback is reached.
✗ Incorrect
If $uri does not exist, nginx tries /index.html next. Since /index.html exists, it serves that file.
❓ Troubleshoot
advanced2:00remaining
Why does try_files cause a 404 error unexpectedly?
You have this config:
Requests to
location /app/ {
try_files $uri $uri/ /app/index.php?$args;
}Requests to
/app/dashboard return 404 errors even though index.php exists. What is the likely cause?Nginx
location /app/ {
try_files $uri $uri/ /app/index.php?$args;
}Attempts:
2 left
💡 Hint
Try_files fallback can cause 404 if internal redirect is not handled correctly.
✗ Incorrect
When try_files falls back to a URI with query string, nginx needs to internally redirect properly. Without 'last' or 'break', it may not process the fallback as expected, causing 404.
✅ Best Practice
advanced1:30remaining
Which try_files usage is best for SPA (Single Page Application)?
You want nginx to serve static files if they exist, but fallback to
/index.html for all other routes in a SPA. Which try_files directive is best?Attempts:
2 left
💡 Hint
Try_files should check static files first, then fallback to index.html for SPA routing.
✗ Incorrect
Option A tries the requested file or directory first, then falls back to /index.html, which is the correct pattern for SPA routing.
🧠 Conceptual
expert2:00remaining
How does try_files interact with alias directive?
Given this config:
If a client requests
location /static/ {
alias /var/www/assets/;
try_files $uri /fallback.png;
}If a client requests
/static/logo.png, which file path does try_files check first?Nginx
location /static/ {
alias /var/www/assets/;
try_files $uri /fallback.png;
}Attempts:
2 left
💡 Hint
Try_files uses the URI, not the alias path, when checking files.
✗ Incorrect
Try_files checks the file path based on the URI. With alias, the URI /static/logo.png maps to /var/www/assets/logo.png, but try_files uses $uri literally, so it checks /var/www/assets/static/logo.png which likely does not exist.