我有一个 azure web 应用程序,带有一个运行 apache 的自定义容器、带有 laravel 的 php 7.4 和一个安装的 azure 文件存储。
从已安装的存储提供 .png 文件确实适用于我在 docker 桌面中的本地构建,并且它适用于物理机上的 testystem。
存储挂载到 /var/www/data_persistent ,laravel 提供来自 /var/www/api/public 的数据。为了保存显示的数据,图像被写入要提供服务的存储中。
我有一个从公共文件夹内部到存储中的链接ln -fs /var/www/data_persistent/maps /var/www/api/public/maps
在 Azure 上,如果我请求地图任何文件夹中的图像,我会收到 400 响应,如果文件完全为空,则可以正常工作。
这是它在网络应用程序上的样子:
total 28
4 drwxr-xr-x 2 root root 4096 Aug 11 13:17 css
0 -rwxr-xr-x 1 root root 0 Jan 28 2022 favicon.ico
4 drwxr-xr-x 3 root root 4096 Aug 11 13:17 images
4 -rwxr-xr-x 1 root root 1785 Feb 4 2022 index.php
4 drwxr-xr-x 2 root root 4096 Aug 11 13:17 js
0 lrwxrwxrwx 1 root root 29 Aug 11 13:20 maps -> /var/www/data_persistent/maps
这是地图内部:
total 29943
0 drwxrwxrwx 2 nobody nogroup 0 Jul 10 23:41 .
0 drwxrwxrwx 2 nobody nogroup 0 May 29 16:23 ..
0 drwxrwxrwx 2 nobody nogroup 0 Jul 28 15:36 1
2715 -rwxrwxrwx 1 nobody nogroup 2779239 Jul 28 15:47 1.tif
0 drwxrwxrwx 2 nobody nogroup 0 Jul 28 12:34 7
27229 -rwxrwxrwx 1 nobody nogroup 27881853 Jul 28 12:43 7.tif
写入文件存储是有效的,您看到的文件夹和文件是从前端和脚本上传的结果。
任何帮助表示赞赏。
2022 年 8 月 17 日更新:
我尝试过很多选择,比如
关闭启用发送文件
在启用站点的 apacheconf 中,但到目前为止还没有运气。
有趣的是,在提供图像时,Apache 日志显示状态代码 200。
还可以从已安装的存储中提供 html 文件,但前提是它们是有效的 html 内容(!)。