【发布时间】:2020-09-10 19:52:34
【问题描述】:
这几天我陷入了一个奇怪的问题。我所有的 Web 应用程序路由都工作正常,除了一个。它有一个 404 not found 问题。所以我检查了:
- 我的路线列表。它存在。
| | GET|HEAD | dashboard/profile/create | profile.create | App\Http\Controllers\Dashboard\ProfileController@create | web
路由列表中的 URI 和搜索框中的请求 URL 匹配。 请求网址:http://localhost/CMSsk/CMS/public/dashboard/profile/create
检查了我的刀片布局。没问题。
<a href="{{ route('profile.create') }}" class="nav-link"><i class="fas fa-briefcase fa-2x mr-2"></i>Add Credentials</a>
- 检查控制器。它存在。
public function create()
{
$user = Auth::user();
return view('Dashboard.Profile.profile-create',compact('user'));
}
- 检查 Apache2 重写模块(已启用)并覆盖所有。
使用 PHPUnit 和 Chrome 浏览器开发工具检查网络、控制台、应用程序 Cookie、存储。找不到除 404 以外的任何问题。
使用 PHPUnit 测试和 XDebug,dd() 来跟踪问题。代码未到达 Controller 方法。
检查了所有可能的堆栈溢出问题。没有解决问题。
清除浏览器缓存。
做过:
php artisan route:cache
问:为了解决这个简单而复杂的问题,我可能没有检查哪些其他可能的问题?
注意:我从另一个页面引用了表单页面,该页面安装了社交媒体共享第 3 方插件(AddThis)。因此,我从那里尝试了其他表单页面和其他链接,并且它有效。所以我很困惑为什么只有一页有问题(我认为插件可能有效果)。
【问题讨论】:
-
查看名称为
profile的资源,你有吗? -
是的。我有 CRUD 的传统资源路由和 19 条带有“profile”前缀的其他路由,我将它们保存在一个单独的路由组中。没有一个路由在 URI 和路由名称上相互匹配。
标签: mysql ubuntu-16.04 laravel-6 php-7.2 addthis