Laravel 想要显示欢迎页面,尽管定义了“/”路由

Laravel wants to show welcome page, although '/' route is defined

我正在学习 Laravel,完成后 this to-do task tutorial,我的应用程序仍然继续显示默认的欢迎页面。

为了防止开发人员摆脱默认内容的机制,我还删除了 resources/views/welcome.blade.php 文件。但这没有帮助。现在唯一不同的是我得到了:

InvalidArgumentException View [welcome] not found.

FileViewFinder 抛出。

根据教程,我的路线在 app/Http/routes.php 中定义为:

/**
 * Display all tasks
 */
Route::get('/', function(){
    $tasks = Task::orderBy('created_at', 'asc')->get();

    return view('tasks', [
        'tasks' => $tasks
    ]);
});

视图是在 resources/views/layouts/tasks.blade.php 中创建的。

不知道少了什么...

完整堆栈跟踪:

InvalidArgumentException thrown with message "View [welcome] not found."
Stacktrace:
#51 InvalidArgumentException in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:137
#50 Illuminate\View\FileViewFinder:findInPaths in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:79
#49 Illuminate\View\FileViewFinder:find in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/View/Factory.php:128
#48 Illuminate\View\Factory:make in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:971
#47 view in /var/www/Laravel/default/routes/web.php:15
#46 Illuminate\Routing\Router:{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Route.php:191
#45 Illuminate\Routing\Route:runCallable in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Route.php:165
#44 Illuminate\Routing\Route:run in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Router.php:610
#43 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#42 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#41 Illuminate\Routing\Middleware\SubstituteBindings:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#40 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#39 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:67
#38 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#37 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#36 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#35 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#34 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#33 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:63
#32 Illuminate\Session\Middleware\StartSession:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#31 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#30 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#29 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#28 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#27 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:59
#26 Illuminate\Cookie\Middleware\EncryptCookies:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#25 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#24 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
#23 Illuminate\Pipeline\Pipeline:then in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Router.php:612
#22 Illuminate\Routing\Router:runRouteWithinStack in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Router.php:571
#21 Illuminate\Routing\Router:dispatchToRoute in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Router.php:549
#20 Illuminate\Routing\Router:dispatch in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/fideloper/proxy/src/TrustProxies.php:56
#17 Fideloper\Proxy\TrustProxies:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
#11 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
#8 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:46
#5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
#2 Illuminate\Pipeline\Pipeline:then in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /var/www/Laravel/default/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /var/www/Laravel/default/public/index.php:58

首先将 routes/web.php 的内容从 Route::get('/', function () { return view('welcome'); });Route::get('/', 'YourControllerName@functionName');

然后在控制器中:

public function functionName(){
$tasks = Task::orderBy('created_at', 'asc')->get();

    return view('layouts.tasks', [
        'tasks' => $tasks
    ]);
}

或者在同一个文件中 web.php 你可以这样做:

Route::get('/', function () { 
$tasks = \DB::table('tasks')->orderBy('created_at', 'desc')->get();
return view('layouts.tasks', [
        'tasks' => $tasks
    ]); 

});

希望有所帮助

return view('layouts.tasks', [
    'tasks' => $tasks
]);

因为您的视图在内部文件夹中,即布局

您没有遗漏任何内容,但您需要在视图函数中将任务替换为 return layouts.tasks'。

return view('layouts.tasks', [
    'tasks' => $tasks
]);

有一个 web.php 文件,确保将所有路由放在那里

另外,我遇​​到了和你一样的问题,通过清除路由缓存解决了这个问题 运行

我遇到了同样的问题,刚刚解决了。 运行 这个命令应该有帮助:

php artisan optimize:clear

清除所有缓存。

这里有更多信息:https://dev.to/kenfai/laravel-artisan-cache-commands-explained-41e1