已经和这个问题斗争了一个月了。在 Azure 应用程序服务上设置 Drupal 9,并使用运行 php8 的 docker 映像(基本映像 drupal:9.1.7-php8.0-apache) 我发现有两种方法可以获取“sites/default/files”公共文件azure 中提供的目录:
两个选项都有效,我的文件已成功上传,并且我可以在存储中看到它们。Drupal 也会看到这些文件,但每次我尝试访问任何上传的文件时,都会收到 500 错误,唯一的错误是Failed to forward request to application. Encountered a System.Net.Http.HttpRequestException exception after 119.915ms with message: Received an invalid status line: 'anges: bytes'.. Check application logs to verify the application is properly handling HTTP traffic.如果我删除上传的文件,应用程序会做出反应并显示找不到该文件。
如果我禁用持久存储(上述任何选项),文件将正确上传,不会显示错误,但问题是每次重新启动或部署应用程序时,文件都会消失。
Drupal 的日志中没有错误。Apache 日志没有更多有用的信息(GET 似乎没问题并返回 200)。尝试过弄乱 apache.conf、php.ini、两个 .htaccess 文件,允许各种令人讨厌的事情,但仍然没有任何线索。有多个同事对此进行了研究,但似乎没有任何效果。