lumen安装Horizon
昨天领导告诉我,要安装Horizon。但是我们使用的是lumen,官方的Horizon并不支持lumen。所以又去找第三方,结果发现已经八个月没有更新了。无奈尝试自己维护。发现一堆坑。根本填不完。今天早上想着去packagist去淘淘。还真让我发现了一个正在维护的:horizon-lumen。
一切安装就按照README.md上面的步骤进行安装就好了。
再此说下,中间碰到的坑。
在执行如下命令:
1 | php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider" |
出现如下错误:
1 | In Facade.php line 218: |
经过查询发现解决方案是在boorstrap/app.php中的注释:
1 | $app->withFacades(); // 去掉这一行的注释 |
我发现这一行已经开启了,但是还是出现这个错误。然后我发现这一块的代码几乎放在了该文件的最后,所以我将其提到了文件的最前面,如下所示:
1 | $app->withEloquent(); // 这一行的下面 |
这样就能正常安装上了。
还有一个问题是在访问仪表盘的时候,结果html代码是以文本来显示的。并没有使用html的方式展示内容。
经过分析,发现返回的header中没有Content-type
选项。
所以写了一个中间件。代码如下:
1 |
|
因为我这边使用了dingo,所以加上如上判断。
最后修改bootstrap/app.php中的一处:
1 | $app->middleware([ |
一切大功告成。
后记:
在分享给同事使用的时候,同事说出现这么一个错误:
1 | The Mix manifest does not exist |
在我本地是正常啊,为啥同事就是不行呢。研究了半天。发现原因了。
因为在public文件夹里面有vendor文件夹。但是正好.gitignore中有一条规则将vendor/给忽略了。所以需要执行以下命令:
1 | git add public/vendor -f # 强制加入git版本追踪 |
提交之后,让同事拉取代码,再去执行就可以了。