ではpub/index.php
、次のコードを使用して、メディアおよび静的アセットの変更URLを設定し、「/ 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);
残念ながらCLIスクリプト(bin/magento
)にはこのようなものはありません。
Magento\Setup\Mvc\Bootstrap\InitParamListener
次のコードでクラスを見つけました:
$initParams = $application->getServiceManager()->get(self::BOOTSTRAP_PARAM);
$directoryList = $this->createDirectoryList($initParams);
しかし、私はこのZend Service Managerがどこでデータを取得し、どのようにしてデータに影響を与えることができるのか理解できません。
私の具体的な問題は、インデクサーが完全なURLを生成するhttp://magento.local/pub/media/...
必要があり、現在はのようにする必要があるということです。http://magento.local/media/...
仮想ホストがポイントしpub
、「pub」がURLの一部であってはならないことをCLIにどのように伝えることができますか?
理想的には、これは追加のCLIパラメーターや環境変数に依存する必要なく機能するはずです。
--magento-init-params=MAGE_DIRS[media][uri]=media
。これは実際にはすべてのコマンドで機能します(コードをステップ実行するとわかります)が、setup:
名前空間外のコマンドでは、オプションが存在しないというエラーが誤って表示されます。