【问题标题】:Laravel (6.0) Route not found error - but route exists in route:listLaravel (6.0) Route not found 错误 - 但 route 存在于 route:list
【发布时间】:2021-12-30 02:31:44
【问题描述】:

我正在尝试从一个包中访问一个路由,但我发现路由未找到 - 即使当我使用命令 php artisan route:list 时该路由显示。我已经尝试清除所有缓存但仍然没有成功?在我的本地环境中一切正常,所以我倾向于缓存问题。

错误信息如下:

[previous exception] [object] (Symfony\Component\Routing\Exception\RouteNotFoundException(code: 0): Route [admin.affiliate_urls.index] 未定义。在 /home/forge/site/vendor/laravel/framework /src/Illuminate/Routing/UrlGenerator.php:437) [堆栈跟踪] #0 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(777): Illuminate\Routing\UrlGenerator->route() #1 /home/forge/site/storage/framework/views/aed68191b7fd34274389d9db4a4a419e12790000.php(145): route() #2 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/home/forge/www...') #3 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath() #4 /home/forge/site/vendor/facade/ignition/src/Views/Engines/CompilerEngine.php(36): Illuminate\View\Engines\CompilerEngine->get() #5 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(143): Facade\Ignition\Views\Engines\CompilerEngine->get() #6 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(126): Illuminate\View\View->getContents() #7 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents() #8 /home/forge/site/storage/framework/views/a6b35713f60cfc6d83afb428a6584b18d94c1e22.php(10): Illuminate\View\View->render() #9 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/home/forge/www...') #10 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath() #11 /home/forge/site/vendor/facade/ignition/src/Views/Engines/CompilerEngine.php(36): Illuminate\View\Engines\CompilerEngine->get() #12 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(143): Facade\Ignition\Views\Engines\CompilerEngine->get() #13 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(126): Illuminate\View\View->getContents() #14 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents() #15 /home/forge/site/vendor/laravel/framework/src/Illuminate/Http/Response.php(42): Illuminate\View\View->render() #16 /home/forge/site/vendor/symfony/http-foundation/Response.php(205): Illuminate\Http\Response->setContent() #17 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(749): Symfony\Component\HttpFoundation\Response->__construct() #18 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Router::toResponse() #19 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Router->prepareResponse() #20 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}() #21 /home/forge/site/vendor/Company/admingui/src/Middleware/AuthAdminUser.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #22 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Company\Admingui\Middleware\AuthAdminUser->handle() #23 /home/forge/site/vendor/Company/core/src/Middleware/CampaignSession.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #24 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Company\Core\Middleware\CampaignSession->handle() #25 /home/forge/site/vendor/Company/core/src/Middleware/UriRedirect.php(29): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #26 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Company\Core\Middleware\UriRedirect->handle() #27 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #28 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle() #29 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #30 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle() #31 /home/forge/site/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #32 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle() #33 /home/forge/site/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #34 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle() #35 /home/forge/site/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #36 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle() #37 /home/forge/site/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #38 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle() #39 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #40 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then() #41 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack() #42 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute() #43 /home/forge/site/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute() #44 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch() #45 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}() #46 /home/forge/site/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(60): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #47 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle() #48 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #49 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() #50 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #51 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() #52 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #53 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle() #54 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #55 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() #56 /home/forge/site/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #57 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle() #58 /home/forge/site/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #59 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then() #60 /home/forge/site/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() #61 /home/forge/site/public/index.php(55): Illuminate\Foundation\Http\Kernel->handle() #62 {主要} "}

php artisan route:list 的输出

[...] | |得到|头|管理员/附属网址 | admin.affiliate_urls.index |公司\Admingui\Controllers\AdminAffiliateUrlController@index |网站,管理员 | [...]

web.php 的内容(包中的路由)

[...] Route::get('/admin/affiliate-urls','Company\Admingui\Controllers\AdminAffiliateUrlController@index')->name("admin.affiliate_urls.index"); [...]

【问题讨论】:

  • 我假设你已经尝试过php artisan route:cache ?
  • 我有,还有 php artisan cache:clear 和 config:clear
  • 在您的本地一切正常,所以问题出在您的服务器上?如果是这样,请尝试运行一次php artisan optimize
  • 我有一个使用闭包的路由,所以我无法使用命令 php artisan optimize
  • 其他路线都正常吗?

标签: php laravel laravel-6


【解决方案1】:

鉴于所有其他路由都正常工作,并且该路由后来被添加,这是一个缓存问题。您可以尝试php artisan route:clearphp artisan optimize:clear(我更喜欢后者,因为它会清除所有缓存,而不仅仅是路由)。然后它应该开始工作了。

注意:

  1. *:clear 命令不会再次构建缓存。
  2. optimize 命令不适用于 Route 闭包,因此如果有,则必须将其注释掉,然后运行 ​​optimize 命令。

【讨论】:

  • Php artisan optimize:clear 解决了找不到路由的问题,但似乎还有其他主要问题与 Laravel 应用程序在服务器上我的 composer 包中找不到文件有关。但是由于 optimize:clear 解决了我最初的问题,我将接受这个作为答案。
  • 这听起来像是一个很奇怪的问题,但如果你不能解决,请再发一个问题,我相信有人会帮助你。
【解决方案2】:

首先,清除所有 cahe 和路由缓存:php artisan optimize 然后如果它不起作用,然后将你的所有 Route php artisan route:list

【讨论】:

  • 如问题所述, php artisan route:list 确实显示了路线。 php artisan optimize 确实解决了部分问题,但没有解决整体问题。
猜你喜欢
  • 2020-04-12
  • 2016-08-21
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2013-11-18
  • 2021-05-24
相关资源
最近更新 更多