Laravel веб-маршрут возврата 404 (не могу найти контроллер) - PullRequest
1 голос
/ 07 октября 2019

Я видел много проблем в интернете с этой проблемой, которая у меня есть, но все они очень широкие и трудно точно определить, что с ней не так, поскольку в ней может быть много переменных, поэтому я решил перечислить все, что имеюпопробовал, и, возможно, кто-то может помочь мне.

URL пытается получить доступ

Контроллер

Справочник app/Http/Controllers/DirManagements/GetDirs.php

namespace App\Http\Controllers\DirManagements;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class GetDirs extends Controller
{
    public function __construct()
    {

    }
    public function getResult()
    {
        echo "hi";
    }
}

Веб-маршрут

Route::get('dirs', 'DirManagements\GetDirs@getResult');

PHP ремесленный маршрут: список

Domain  | Method   | URI                        | Name | Action                                                     | Middleware                                                                                     
|       |GET|HEAD  | dirs                       |      | App\Http\Controllers\DirManagements\GetDirs@getResult      | web   

Файл, доступный для сайтов Nginx

server {
    listen 443 ssl;

    root /something;
    index index.php index.phtml index.html index.htm index.nginx-debian.html;
    server_name something;

    location / {
            try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

ssl_certificate /etc/letsencrypt/live/something/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/something/privkey.pem; # managed by Certbot

}

Решение

Я не знаю, почему laravel не включил это, когдарасставитьдобавил это в мой конфиг nginx, и это сработало.

location / {
     try_files $uri $uri/ /index.php$is_args$args;
}

# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass unix:/var/run/php7-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
}

1 Ответ

0 голосов
/ 07 октября 2019

Может быть несколько причин, которые могут вызвать это. Попробуйте выполнить каждое из следующих действий и дайте мне знать, если оно работает:

  • Убедитесь, что вы перезапустили Сервер после создания маршрута.
  • Убедитесь, что вы выполнили следующие команды, чтобы избежать проблем с кэшем:

    php artisan config:clear  
    php artisan cache:clear  
    composer dump-autoload  
    php artisan view:clear  
    php artisan route:clear
    
...