我正试图将Horizon添加到我最新的laravel应用程序中,但当我访问带有Horizon路径的url时(https://my-app.com/horizon)我得到一个404,php artisan routes:list
不包含任何到地平线的路线。我跑过php artisan route:clear
,也没有快乐。
我遵循了官方文件(https://laravel.com/docs/9.x/horizon)所以我执行了以下命令:
composer require laravel/horizon
php artisan horizon:install
并编辑配置以使用redis。我现在使用的是本地环境,所以不需要门(对吧?(我也使用spatie/permissions,所以在access horizon
的权限下,我编辑了HorizonServiceProvider.php文件,如下所示:
<?php
namespace AppProviders;
use IlluminateSupportFacadesGate;
use LaravelHorizonHorizon;
use LaravelHorizonHorizonApplicationServiceProvider;
class HorizonServiceProvider extends HorizonApplicationServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
parent::boot();
}
/**
* Register the Horizon gate.
*
* This gate determines who can access Horizon in non-local environments.
*
* @return void
*/
protected function gate()
{
Gate::define('viewHorizon', function ($user) {
return $user->can( 'access horizon' );
});
}
}
这应该允许用户,如果他们有访问范围权限,并拒绝其他情况(但我在本地,所以无论如何都会运行?(
我将laravel 9.23与php8.1一起使用,并启用了redis。我还看到地平线正在运行php artisan horizon
,然后php artisan horizon:status
说Horizon is running.
我错过什么了吗?所以Horizon正在运行redis,它被启用并设置为使用队列,在我的路由列表中没有Horizon路由,如果我访问url,我显然会得到404错误。
在周末断电并于今天早上启动后,Horizon现在可以工作了!