Php Laravel供应商:发布目录权限问题
我正在构建一个包,当调用Php Laravel供应商:发布目录权限问题,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在构建一个包,当调用phpartisanvendor:publish时,它需要发布到这些目录 目录包括 public_path('vendor/package/assets') resources_path('vendor/package/views') resources_path('vendor/package/translations') 当我运行试图写入这些目录的vendor:publish时,我收到与权限相关的错误 但是vendor:publish适用于数据库路径(“迁移”) L
phpartisanvendor:publish
时,它需要发布到这些目录
目录包括
public_path('vendor/package/assets')
resources_path('vendor/package/views')
resources_path('vendor/package/translations')
当我运行试图写入这些目录的vendor:publish
时,我收到与权限相关的错误
但是vendor:publish
适用于数据库路径(“迁移”)
Laravel需要775权限才能进行存储
和引导/缓存
我不想让包用户被迫对公共和资源目录授予写权限
注意:我的包已经使用$this->loadViewsFrom、$this->loadTranslationsFrom和$this->loadMigrationsFrom作为默认选项。我希望让我的软件包用户完全可以修改视图、翻译、迁移等。我的软件包还需要将一些资产发布到public
目录,如js、css等,这对于某些视图来说是非常必要的
关于
artisan供应商:publish
,我缺少什么?我该如何让它工作?在包的服务提供商引导
方法中,您应该依赖加载视图from
和加载翻译from
方法来正确包含视图和翻译文件:
public function boot()
{
$this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
$this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'courier');
}
有关包含视图的更多信息,请参阅和翻译
如果您希望发布文件,而不是仅加载文件以供使用,请使用publishes
方法:
public function boot()
{
$this->publishes([
__DIR__.'/path/to/assets' => public_path('vendor/courier'),
]);
}
在软件包的服务提供商
boot
方法中,您应该依靠loadViewsFrom
和loadTranslationsFrom
方法正确地包含视图和翻译文件:
public function boot()
{
$this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
$this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'courier');
}
有关包含视图的更多信息,请参阅和翻译
如果您希望发布文件,而不是仅加载文件以供使用,请使用publishes
方法:
public function boot()
{
$this->publishes([
__DIR__.'/path/to/assets' => public_path('vendor/courier'),
]);
}
谢谢你的贡献。我的包已经使用$this->loadViewsFrom、$this->loadTranslationsFrom和$this->loadMigrationsFrom作为默认选项。我希望让我的软件包用户能够完全访问修改视图、翻译、迁移等。我的软件包还需要将一些资产发布到“公共”目录,如js、css,这对于某些视图来说是非常必要的。您是否使用
$this->发布
?感谢您的贡献。我的包已经使用$this->loadViewsFrom、$this->loadTranslationsFrom和$this->loadMigrationsFrom作为默认选项。我希望让我的软件包用户完全可以修改视图、翻译、迁移等。我的软件包还需要将一些资产发布到“公共”目录,如js、css,这对于某些视图非常必要。您是否使用$this->publishes
?