Laravel访问localhost/laravel/public报NotFoundHttpException错误求助
排查Laravel访问localhost/laravel/public/出现404的问题
Hey there, let's work through this 404 issue step by step—I've hit similar roadblocks when starting out with Laravel, so let's break down the possible fixes:
1. 确认视图文件的位置和拼写
Laravel默认会在resources/views/目录下查找视图文件,所以你需要确保:
welcome.blade.php确实放在resources/views/里面,而不是项目根目录下的views文件夹(很多新手容易搞混这个路径)。- 文件名完全匹配,包括大小写(Linux/macOS环境下文件名是区分大小写的,
Welcome.blade.php和welcome.blade.php会被当成两个不同的文件)。
2. 测试路由是否正常工作
你的web.php代码看起来没问题,但我们可以先简化路由来排除视图的影响:
把web.php里的代码改成直接返回字符串:
Route::get('/', function() { return 'Hello World'; });
如果访问localhost/laravel/public/能看到字符串,说明问题出在视图文件的路径上;如果还是404,那大概率是服务器配置或者访问路径的问题。
3. 试试Laravel自带的开发服务器
新手用自带服务器能避开很多Apache/Nginx的配置坑:
打开终端,进入你的Laravel项目根目录(就是包含artisan文件的那个文件夹),运行:
php artisan serve
然后访问http://localhost:8000,看看能不能正常显示内容。这个命令会自动处理路由和静态资源,是测试本地Laravel项目最省心的方式。
4. 检查Apache的.htaccess文件(如果用Apache)
如果是通过localhost/laravel/public/访问,确保public目录下的.htaccess文件存在,并且Apache已经启用了mod_rewrite模块:
- 如果
.htaccess丢失,可以用Laravel的默认内容替换:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
- 确认Apache的
mod_rewrite模块已经启用(XAMPP/WAMP里可以在控制面板里开启)。
5. 清除缓存(虽然是新项目,但不妨试试)
有时候路由或视图缓存会导致意料之外的问题,运行下面的命令清除缓存:
php artisan route:clear php artisan view:clear
先从这些步骤排查,应该能解决你的404问题!
内容的提问来源于stack exchange,提问作者Raghunathan
相关产品推荐
相关产品推荐

