Laravel Nova,找不到路线

Laravel Nova, route not found

我已经安装了 Laravel Nova(使用 Laravel 5.6)。 App\Providers\NovaServiceProvider::class 已在我的 config/app.php 文件中注册。但是当我转到 https://localhost:1234/nova 时,我得到一个 404 错误。

我已经清除了我的缓存和 运行 composer dump-autoload。我怎样才能让这条路线工作?

编辑:当我 运行 php artisan route:list 那里有 nova-api 路线但没有 nova.

的路线

另外,迁移在 nova:install 之后没有被复制。我正在使用现有的 Laravel 项目。

我运行也遇到过这个问题。将 Nova::routes(); 添加到您的 routes/web.php 并在您的浏览器中重新加载 /nova

来自 Taylor(如果您使用的是比 Nova 1.0.1 更早的版本):

If you are having issues with Nova not registering a /nova route when using "php artisan serve"... try upgrading Nova and updating your route registration in your NovaServiceProvider to match this image... (add "register" on end of chain).

https://twitter.com/taylorotwell/status/1032298042773393408

您必须清除配置缓存才能使更改实际应用:

php artisan config:clear

Verify App\Providers\NovaServiceProvider is in your provider list.

  • 转到config/app.php
  • App\Providers\NovaServiceProvider::class,添加到providers

请注意,此答案与 相关,并且是对上述推文后续问题的直接回答。 https://twitter.com/taylorotwell/status/1032300773655408640

没有这个,就可以看到 Nova 面板,尽管它仍然是空的。此时全新安装将在仪表板上显示 "Help" 卡片。

如果您通过像这样调整 composer.json 来禁用 Package Discovery / Autodiscover

"extra": {
    "laravel": {
        "dont-discover": [
            "*"
        ]
    }
}

您需要手动将 NovaCoreServiceProvider 和 Nova 别名添加到您的 config/app.php

'providers' => [
    Laravel\Nova\NovaCoreServiceProvider::class,
],
'aliases' => [
    'Nova' => Laravel\Nova\Nova::class,
]

如果您查看 vendor 文件夹中 laravel/nova 的 composer.json,您会看到:

"extra": {
    "laravel": {
        "providers": [
            "Laravel\Nova\NovaCoreServiceProvider"
        ],
        "aliases": {
            "Nova": "Laravel\Nova\Nova"
        }
    }
},

我遇到了同样的问题。最后记得启用 HTTP 重写来解决。

a2enmod rewrite

然后重启apache

sudo systemctl restart apache2

检查路由是否不需要id

例如/student/:id

我意识到自发布以来已经有一段时间了,还有其他答案,但今天我遇到了同样的问题,一个全新的安装似乎不知从何而来,并通过添加解决了它

\Laravel\Nova\NovaCoreServiceProvider::classconfig/app.php 中的 providers 数组。

这样做之后,我运行artisan route:clear清除并重建路由缓存,问题就解决了。

我不知道是什么原因导致了这个问题,因为我用 nova 以完全相同的方式引导了多个新的 laravel 项目并且从未遇到过这个问题。

一个选项是调试以检查所有 Nova 路由。 在 NovaServiceProvider class boot() 函数中添加上面的行。

    public function boot()
    {
        parent::boot();
        Nova::serving(function (ServingNova $event) {
            $request = $event->request;
            \Log::debug(Nova::resourceInformation($request));
        }