Laravel Nova,找不到路线

问题描述 投票:0回答:10

我已经安装了 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 项目。

php laravel laravel-nova
10个回答
13
投票

验证 App\Providers\NovaServiceProvider 是否在您的提供商列表中。

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

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

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


5
投票

我也遇到这个问题了。将

Nova::routes();
添加到您的
routes/web.php
并在浏览器中重新加载
/nova


3
投票

您必须清除配置缓存才能真正应用更改:

php artisan config:clear

0
投票

来自 Taylor(如果您使用的是 Nova 1.0.1 之前的版本):

如果您在使用“php artisanserve”时遇到 Nova 未注册 /nova 路由的问题...请尝试升级 Nova 并更新 NovaServiceProvider 中的路由注册以匹配此图像...(在末尾添加“注册”链)。

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


0
投票

如果您通过调整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,
]

如果您查看供应商文件夹中 laravel/nova 的composer.json,您可以看到以下内容:

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

0
投票

我也有同样的问题。最后记住启用 HTTP 重写来解决。

a2enmod rewrite

然后重新启动apache

sudo systemctl restart apache2

0
投票

检查路线是否不需要id

例如/student/:id


0
投票

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

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

这样做之后,我运行

artisan route:clear
清除并重建路由缓存,问题就解决了。

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


0
投票

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

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

0
投票

如果所有解决方案均无效,请删除 vendor 文件并重试

© www.soinside.com 2019 - 2024. All rights reserved.