Preciso obter o arquivo PATH para uma imagem na pub/static/[VENDOR_THEME]
pasta.
Atualmente, eu posso fazer isso usando um auxiliar:
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\Magento\Framework\View\Asset\Repository $assetRepository,
\Magento\Framework\App\Filesystem\DirectoryList $directoryList
) {
parent::__construct($context);
$this->_assetRepo = $assetRepository;
$this->_directoryList = $directoryList;
}
public function getImagePath($image)
{
return $this->_directoryList->getPath(DirectoryList::STATIC_VIEW) .
'/' .
$this->_assetRepo->getStaticViewFileContext()->getPath() .
'/' .
$image;
}
Existe alguma função Magento embutida que lida com isso, então não preciso criar meu próprio auxiliar?
Respostas:
Como o @Khoa TruongDinh afirma, você pode usar o
Magento\Framework\View\Asset\Repository
para obter uma classe de arquivoMagento\Framework\View\Asset\File
, que pode ser usada para obter vários dados.Para obter ativos em sua pasta de temas,
app/design/frontend/VENDOR/THEME/web
simplesmente retire o nome do módulo como abaixo ....Veja as
Magento\Framework\View\Asset\File
funções que você pode usar para obter dados do arquivo.fonte
No nosso bloco, devemos tentar com:
Dê uma olhada:
vendor/magento/module-backend/view/adminhtml/templates/page/js/require_js.phtml
vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml
EDIT: podemos usar
Magento\Framework\View\Asset\Repository
Por exemplo: sua imagem está em:
app/code/Vendor/Module/view/frontend/web/images/image.png
Veja mais aqui: Magento 2 Obter URL da imagem no controlador ou auxiliar?
fonte