W: pub/index.phpnastępujący kod służy do ustawienia adresów URL zmian zasobów multimedialnych i statycznych w celu pominięcia „/ pub”:
$params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [
DirectoryList::PUB => [DirectoryList::URL_PATH => ''],
DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'],
DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'],
DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'],
];
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
Niestety w skryptach CLI ( bin/magento) nie ma czegoś takiego.
Znalazłem klasę Magento\Setup\Mvc\Bootstrap\InitParamListenerz następującym kodem:
$initParams = $application->getServiceManager()->get(self::BOOTSTRAP_PARAM);
$directoryList = $this->createDirectoryList($initParams);
Ale nie rozumiem, skąd ten Zend Service Manager pobiera dane i jak można na nie wpłynąć.
Moim konkretnym problemem jest to, że indeksator musi generować pełne adresy URL i obecnie robi to http://magento.local/pub/media/..., tam gdzie jest to potrzebnehttp://magento.local/media/...
Jak mogę powiedzieć CLI, że mój wirtualny host wskazuje pubi „pub” nie powinien być częścią adresów URL?
Idealnie powinno to działać bez konieczności polegania na dodatkowych parametrach CLI lub zmiennych środowiskowych.
--magento-init-params=MAGE_DIRS[media][uri]=media. W rzeczywistości działa to dla wszystkich poleceń (oczywiste, przechodząc przez kod), ale polecenia spoza setup:przestrzeni nazw niepoprawnie dają błąd, że opcja nie istnieje.