访问/assets路由提示404,Laravel资源路由配置异常求助
排查Laravel /assets路由404问题的步骤
- 先确认路由是否正确注册:执行
php artisan route:list,查看是否存在GET|HEAD /assets这条路由,对应的控制器方法是否为AssetController@index。如果这条路由没出现在列表里,检查web.php里的路由代码拼写是否正确,比如AssetController类名大小写、是否引入了对应命名空间。 - 检查AssetController的index方法:确保控制器文件里存在
public function index()方法,方法缺失的话即便路由注册成功也会返回404。 - 清除路由缓存:如果之前执行过
php artisan route:cache,修改路由后必须执行php artisan route:clear清除缓存,否则新路由不会生效。 - 排查路由冲突:检查web.php中assets路由之前的代码,有没有其他路由和
/assets匹配(比如通配符路由Route::get('{any}', ...)或同名路由),这类路由会优先匹配导致assets路由无法被命中。 - 验证控制器命名空间:确保AssetController的命名空间是
App\Http\Controllers,web.php里要么通过use App\Http\Controllers\AssetController;引入,要么路由里写完整命名空间Route::resource('assets', \App\Http\Controllers\AssetController::class)->except(...)。 - 检查服务器配置:用Apache的话,确认public目录是网站根目录且.htaccess文件正常(用Laravel默认配置即可);用Nginx的话,配置文件要包含
try_files $uri $uri/ /index.php?$query_string;,保证所有请求转发到index.php处理。
内容的提问来源于stack exchange,提问作者Hagar Maher
相关产品推荐
相关产品推荐

