我已经安装了 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 项目。
验证 App\Providers\NovaServiceProvider 是否在您的提供商列表中。
config/app.php
App\Providers\NovaServiceProvider::class,
添加到 providers
请注意,此答案与 @jszobody 的 anwser 相关,并且是对上述推文后续问题的直接回答。 https://twitter.com/taylorotwell/status/1032300773655408640
如果没有这个,就可以看到 Nova 面板,尽管它仍然是空的。此时全新安装将在仪表板上显示“帮助”卡。
我也遇到这个问题了。将
Nova::routes();
添加到您的 routes/web.php
并在浏览器中重新加载 /nova
。
您必须清除配置缓存才能真正应用更改:
php artisan config:clear
来自 Taylor(如果您使用的是 Nova 1.0.1 之前的版本):
如果您在使用“php artisanserve”时遇到 Nova 未注册 /nova 路由的问题...请尝试升级 Nova 并更新 NovaServiceProvider 中的路由注册以匹配此图像...(在末尾添加“注册”链)。
如果您通过调整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"
}
}
},
我也有同样的问题。最后记住启用 HTTP 重写来解决。
a2enmod rewrite
然后重新启动apache
sudo systemctl restart apache2
检查路线是否不需要id
例如/student/:id
我意识到自发布此文以来已经有一段时间了,并且还有其他答案,但今天我遇到了同样的问题,全新安装似乎不知从何而来,并通过添加解决了它
\Laravel\Nova\NovaCoreServiceProvider::class
到 providers
中的 config/app.php
数组。
这样做之后,我运行
artisan route:clear
清除并重建路由缓存,问题就解决了。
我不知道是什么导致了这个问题,因为我已经用 nova 以完全相同的方式引导了多个新的 laravel 项目,但从未遇到过这个问题。
一种选择是调试以检查所有 Nova 路由。 在 NovaServiceProvider 类 boot() 函数中添加上面的行。
public function boot()
{
parent::boot();
Nova::serving(function (ServingNova $event) {
$request = $event->request;
\Log::debug(Nova::resourceInformation($request));
}
如果所有解决方案均无效,请删除 vendor 文件并重试