ОК, я решил эту проблему и сохраняю здесь ответ для моей собственной записи, и на тот случай, если он пригодится кому-то еще.
Отказ от ответственности: Я до сих пор не знаю, с кем возникла ошибка, поэтому рассмотримэто обходной путь / исправление ошибки / ужасная идея - как вам нравится.
Я изменил два основных файла следующим образом:
В функции readStream()
в vendor/league/flysystem/src/adapter/local.php
:
// original lines, removed:
//$location = $this->applyPathPrefix($path);
//$stream = fopen($location, 'rb');
// my addition (1 line):
$stream = fopen(asset($path), 'rb');
В функции readStream()
in vendor/league/flysystem/src/filesystem.php
:
// original line, removed:
//$this->assertPresent($path);
// my addition (1 line):
$path = str_replace('http:/a','http://a', $path);
В первой функции она не работала, потому что не могла открыть путь - перед ней добавлялся локальный префиксвеб-адреса.
Во второй функции он не смог подтвердить наличие файла, поскольку он был удален из-за того, что был удален один из слэшей (все еще не совсем понятно, как ...).Поэтому я просто заменил строку, чтобы вставить ее обратно («а» - это первая буква названия моего проекта в APP_URL
в .ENV
- , для этого нужно заменить ее на первую букву вашего проектана работу .
Это ужасно грязный способ сделать это, но он работает. Надеюсь, я найду лучшее решение.