将 sanctum 添加到现有项目时无法找到可发布的资源
Unable to locate publishable resource when adding sanctum to existing project
Laravel Sanctum documentation 声明要将 Sanctum 添加到现有 Laravel 项目,必须:
- 需要LaravelSanctum
composer require laravel/sanctum
- 将Sanctum的资源发布到应用程序目录
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
当 运行 (2)
时我得到 Unable to locate publishable resources.
我已经按照 php artisan clear-compiled
和 composer dumpautoload
的顺序试过了
我检查了 vendor/laravel/sanctum/src/SanctumServiceProvider.php
存在并且 boot() 方法确实发布了 Sanctum 的配置和迁移
我还通过确保源路径在 autoload_classmap.php
中列出,检查了自动加载是否发现了 SanctumServiceProvider
同样,这是将 Sanctum 添加到现有 Laravel 项目的尝试
我是不是漏掉了什么?
我的设置:
- Laravel 8.37
- PHP 7.3.9
- 作曲家 2.0.12
我已经解决了我的问题。
简答:
在 composer require laravel/sanctum
之后执行此操作:
- 备份或重命名
cache/services.php
- 删除
cache/services.php
- 运行
php artisan
。似乎 运行 artisan 以任何方式重新生成 cache/services.php
之后,继续官方文档(发布、迁移等)
更长的解释
不完全确定发生了什么。但显然所有发现的 service provider 都缓存在 cache/services.php
.
中
我不知道它是如何生成的,也不知道服务提供商是如何被发现的。谷歌搜索没有给我任何关于该文件的文件(官方或其他文件)。
我想如果我将 Sanctum 的 SP 添加到 config/app.php
(即记录的添加服务提供商的方式),它将被发现并缓存。显然不是这样。删除并重新生成 cache/services.php
是我发现的唯一可行方法。重新生成文件后,列出Sanctum的SP。
我观察到的一件事是,这只发生在现有项目上(现有项目已经在处理、添加包、配置更改等)。如果我将 Sanctum 添加到新项目,则不会发生。
Laravel Sanctum documentation 声明要将 Sanctum 添加到现有 Laravel 项目,必须:
- 需要LaravelSanctum
composer require laravel/sanctum
- 将Sanctum的资源发布到应用程序目录
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
当 运行 (2)
时我得到Unable to locate publishable resources.
我已经按照 php artisan clear-compiled
和 composer dumpautoload
的顺序试过了
我检查了 vendor/laravel/sanctum/src/SanctumServiceProvider.php
存在并且 boot() 方法确实发布了 Sanctum 的配置和迁移
我还通过确保源路径在 autoload_classmap.php
同样,这是将 Sanctum 添加到现有 Laravel 项目的尝试
我是不是漏掉了什么?
我的设置:
- Laravel 8.37
- PHP 7.3.9
- 作曲家 2.0.12
我已经解决了我的问题。
简答:
在 composer require laravel/sanctum
之后执行此操作:
- 备份或重命名
cache/services.php
- 删除
cache/services.php
- 运行
php artisan
。似乎 运行 artisan 以任何方式重新生成cache/services.php
之后,继续官方文档(发布、迁移等)
更长的解释
不完全确定发生了什么。但显然所有发现的 service provider 都缓存在 cache/services.php
.
我不知道它是如何生成的,也不知道服务提供商是如何被发现的。谷歌搜索没有给我任何关于该文件的文件(官方或其他文件)。
我想如果我将 Sanctum 的 SP 添加到 config/app.php
(即记录的添加服务提供商的方式),它将被发现并缓存。显然不是这样。删除并重新生成 cache/services.php
是我发现的唯一可行方法。重新生成文件后,列出Sanctum的SP。
我观察到的一件事是,这只发生在现有项目上(现有项目已经在处理、添加包、配置更改等)。如果我将 Sanctum 添加到新项目,则不会发生。