php - Laravel 8 在 web.php 中找不到任何路由
问题描述
所以这对我来说是一个新的。我是一位经验丰富的 Laravel 开发人员,今天正在做一个项目。这是一个相当大的项目,它一直工作到现在。然而,我今天离开办公桌去吃午饭,当我回来时,我开始遇到这些错误。让我们假装我不在的时候有人惹我,我找不到其他原因。
该错误基本上可以描述为:我的 web.php 文件中没有路由有效。我在 chrome 调试器中得到了这个奇怪的结果:
Illuminate\Contracts\Container\BindingResolutionException
Target class [Illuminate\Support\Facades\App\Http\Controllers\HomeController] does not exist.
它的有趣之处在于它试图添加到Illuminate\Support\Facades
控制器命名空间的开头。同样,不知道这是如何开始发生的。
故事变得更有趣了。作为我文件的第一条路线,我只是放了一个回调函数:
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
Route::get('/test', function(){
return 123;
});
这会导致 404 错误。该应用程序甚至找不到那条路线。
我尝试过的事情:
protected $namespace = 'App\\Http\\Controllers';
取消注释RouteServiceProvider.php
使用 laravel 7 语法Route::get('/test', 'HomeController@index');
添加use App\Http\Controllers\HomeController
到文件顶部
这些解决方案似乎都没有帮助,因为我仍然遇到这个错误。任何人都可以提供一些建议吗?
从 Composer.json 添加了 AutoLoad
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
RouteServiceProvider.php
protected $namespace = 'App\\Http\\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
解决方案
因此,根据上面的@lagbox 评论,我运行了php artisan config:cache
它,然后解决了我原来的错误。但是,然后我收到了一个新的说明:
Call to undefined method Closure::__set_state()
网上的所有其他问题都告诉我,要摆脱这个错误,我必须config.php
从bootstrap/cache
目录中删除。但是我没有!进一步挖掘后,在 Laravel 8 中,您只需将routes-v7.php
文件重命名为其他名称。我选择将其重命名为routes-v7-please-work.php
lo,我的应用程序现在又可以工作了。不知道这一切是如何发生的,但感谢那些回应并让我走上正轨的人。
如果我错过了基于上述内容从中恢复的任何步骤,请告诉我。诸如额外的工匠命令或重新优化事物或其他提示之类的东西。
推荐阅读
- c - strcmp 返回错误值
- hyperledger-fabric - SERVICE_UNAVAILABLE -- 支持的 Kafka 集群尚未完成启动;稍后再试
- reactjs - 在特定路线上隐藏组件 - Reactjs
- java - InvalidProtocolBufferException 试图获取主模块包 ID
- css - 如何修复 CSS“过渡”取消悬停元素?
- amazon-web-services - 使用 --no-verify-ssl 通过 aws cli 将数据复制到 s3。安全与否?
- http - Golang 在服务器运行时得到 404
- javascript - FCM 本站已在后台更新
- react-native - 使用 Apollo 客户端和 Apollo Server 的 React Native 应用程序的 Mutation 类型的未知参数“on field”
- c++ - 使用需要函数指针的 C 库时的 C++ 习惯用法?