【问题标题】:ALL possible issues of 404 NOT found laravel 6未找到 404 的所有可能问题 laravel 6
【发布时间】:2020-09-10 19:52:34
【问题描述】:

这几天我陷入了一个奇怪的问题。我所有的 Web 应用程序路由都工作正常,除了一个。它有一个 404 not found 问题。所以我检查了:

  1. 我的路线列表。它存在。
|        | GET|HEAD      | dashboard/profile/create                                                      | profile.create                   | App\Http\Controllers\Dashboard\ProfileController@create                                            | web
  1. 路由列表中的 URI 和搜索框中的请求 URL 匹配。 请求网址:http://localhost/CMSsk/CMS/public/dashboard/profile/create

  2. 检查了我的刀片布局。没问题。

<a href="{{ route('profile.create') }}" class="nav-link"><i class="fas fa-briefcase fa-2x mr-2"></i>Add Credentials</a>
  1. 检查控制器。它存在。
public function create()
    {
        $user       = Auth::user();
        return view('Dashboard.Profile.profile-create',compact('user'));
    }
  1. 检查 Apache2 重写模块(已启用)并覆盖所有。

  1. 使用 PHPUnit 和 Chrome 浏览器开发工具检查网络、控制台、应用程序 Cookie、存储。找不到除 404 以外的任何问题。

  2. 使用 PHPUnit 测试和 XDebug,dd() 来跟踪问题。代码未到达 Controller 方法。

  3. 检查了所有可能的堆栈溢出问题。没有解决问题。

  4. 清除浏览器缓存。

  5. 做过:

php artisan route:cache

问:为了解决这个简单而复杂的问题,我可能没有检查哪些其他可能的问题?

注意:我从另一个页面引用了表单页面,该页面安装了社交媒体共享第 3 方插件(AddThis)。因此,我从那里尝试了其他表单页面和其他链接,并且它有效。所以我很困惑为什么只有一页有问题(我认为插件可能有效果)。

【问题讨论】:

  • 查看名称为profile的资源,你有吗?
  • 是的。我有 CRUD 的传统资源路由和 19 条带有“profile”前缀的其他路由,我将它们保存在一个单独的路由组中。没有一个路由在 URI 和路由名称上相互匹配。

标签: mysql ubuntu-16.04 laravel-6 php-7.2 addthis


【解决方案1】:

更新:

我修复了解决方案,但我想分享一下我是如何做到的,以便偶然发现这种情况的任何人都能找到一些帮助。所以这里是:

解决方案:

我首先创建了一个路由组,它的 prefix 命名为 profile。它有 19 条路线。紧接着,我创建了一个名为prefix 的资源路由。所以这两个相同的名字有冲突,我没有得到页面。

我是怎么想出来的:

我几乎用尽了所有可能的解决方案。所以我开始手动测试路线只是为了弄清楚是否有模式发展。我知道这不是最有效的方法,但我想找出一种模式,这就是我这样做的原因。在测试了名为profile 的路由组prefix 后,我发现该组内的所有路由都无法从我调用它的位置工作。然后我从那个特定的刀片视图测试了该组之外的路由并且它正在工作。所以我更改了资源路由的名称,只是为了使它与路由组prefix 不同。它奏效了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2015-09-06
    • 2020-09-02
    • 2021-03-21
    相关资源
    最近更新 更多