Réponses:
Utilisez le code ci-dessous pour obtenir l'URL de l'image dans view
<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
MISE À JOUR:
<?php echo $block->getViewFileUrl('images/demo.jpg'); ?>
Pour obtenir le chemin de l'image dans votre assistant ou contrôleur, vous devez utiliser
use Magento\Framework\View\Asset\Repository;
use Magento\Framework\App\RequestInterface; // for $this->request
dans votre dossier.
Une fois que vous avez ajouté le référentiel et créé l'objet assetRepo
& request
, appelez le chemin de l'image avec la fonction,
$params = array('_secure' => $this->request->isSecure());
$this->assetRepo->getUrlWithParams('Nitesh_Module::images/image.png', $params);
Se référer à la vendor\magento\module-payment\Model\CcConfig.php::getViewFileUrl($fileId, array $params = [])
fonction
ÉDITER
Pour obtenir des chemins d'image corrects pour les scripts d'installation, les appels d'API et les Cronjobs, vous devrez ajouter une émulation comme ci-dessous pour obtenir des chemins d'image corrects.
public function __construct(
\Magento\Framework\View\Asset\Repository $assetRepo,
\Magento\Framework\App\RequestInterface $request,
\Magento\Store\Model\App\Emulation $appEmulation
)
{
$this->assetRepo = $assetRepo;
$this->request = $request;
$this->appEmulation = $appEmulation;
}
public FunctionName($param){
$this->appEmulation->startEnvironmentEmulation($storeId, \Magento\Framework\App\Area::AREA_FRONTEND, true);
$params = array('_secure' => $this->request->isSecure());
$this->assetRepo->getUrlWithParams('Nitesh_Module::images/image.png', $params);
$this->appEmulation->stopEnvironmentEmulation();
}