J'ai besoin d'obtenir le fichier PATH pour une image dans le pub/static/[VENDOR_THEME]
dossier.
Actuellement, je peux le faire en utilisant un assistant:
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-t-il une fonction Magento intégrée qui gère cela, donc je n'ai pas à créer mon propre assistant?
Réponses:
Comme l'indique @Khoa TruongDinh, vous pouvez utiliser le
Magento\Framework\View\Asset\Repository
pour obtenir une classe de fichiersMagento\Framework\View\Asset\File
, que vous pouvez ensuite utiliser pour obtenir diverses données.Pour obtenir un élément dans votre dossier de thème, il vous
app/design/frontend/VENDOR/THEME/web
suffit de supprimer le nom du module comme ci-dessous ....Voir
Magento\Framework\View\Asset\File
pour les fonctions que vous pouvez utiliser pour obtenir des données de fichier.la source
Dans notre bloc, nous devrions essayer avec:
Regarde:
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: nous pouvons utiliser
Magento\Framework\View\Asset\Repository
Par exemple: votre image est sous:
app/code/Vendor/Module/view/frontend/web/images/image.png
Voir plus ici: Magento 2 Obtenir l'image URL dans le contrôleur ou l'aide?
la source