The error message suggests that Nginx is looking for the API route in the wrong directory. The Laravel application's public directory should be the root directory for Nginx. To fix this, update the Nginx configuration file to set the root directory to /var/www/html/public instead of /var/www/html.
Here's the updated default.conf file:
server {
index index.php index.html;
server_name phpfpm.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public; # updated root directory
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
After updating the configuration file, rebuild the Docker containers and try accessing the API route again.