【发布时间】:2020-06-12 17:36:03
【问题描述】:
我在 Azure 上使用 Laravel 6 应用程序时遇到问题。我正在使用 TCG/Navigator 来构建我的管理界面。本地开发中的一切都是笨拙的,但是当我将代码推送到 Azure 中的开发站点时,存储磁盘中的项目不可用。我在 Navigator 管理面板中看到这是损坏的图像。
看起来 Laravel 的文件存储需要符号链接才能操作:
https://laravel.com/docs/6.x/filesystem#the-public-disk
但 Azure 的 Windows Web 应用程序似乎不支持符号链接。我需要其他东西来将 /public/storage 映射到 /storage/app/public。
我可以创建一个新的虚拟目录,但这并没有解决问题。我将“/storage”映射到“site\wwwroot\storage\app\public”,但在导航器管理面板中仍然看到损坏的图像。
我在 Navigator 的 repo 中发现了这个问题:
https://github.com/the-control-group/voyager/issues/417#issuecomment-304525223
这似乎正是我需要的修复,但它也不起作用。
我已添加:
'azure' => [
'driver' => 'local',
'root' => storage_path('..\public\storage'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
到文件系统.php。在 voyager.php 中,我看到:
'storage' => [
'disk' => env('FILESYSTEM_DRIVER', 'public'),
],
所以为了在本地开发中保持原样(即工作),我在我的网络应用程序中添加了一个应用程序设置:
FILESYSTEM_DRIVER,设置为“天蓝色”
我知道我的 Azure Web 应用程序正在尝试使用 azure 文件系统,因为我最初忘记推送更新的代码,而我的应用程序告诉我它丢失了。
所以现在我认为我的问题可能是我在 azure 存储磁盘的定义中没有正确的值。有什么想法吗?或者,可能有关于尝试让 Laravel 的文件存储在 Azure 上运行的不同方法的建议?
【问题讨论】: