Magento 2 Adminhtml – How to Get Custom Module Image URL

adminhtmlimagemagento2url

I used

<?php echo $this->getViewFileUrl('Vendor_Module::images/demo.jpg'); ?>
<?php echo $block->getViewFileUrl('Vendor_Module::images/demo.jpg'); ?>

But it's working only frontend, I want it in adminhtml block file.

I used this in renderer column of grid
File:

namespace Vendor\Module\Block\Adminhtml\Product\Renderer;

use Magento\Framework\DataObject;

class FileIcon extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
{

    public function render(DataObject $row)
    {

        echo $this->getViewFileUrl('Vendor_Module::images/demo.jpg');
        echo $block->getViewFileUrl('Vendor_Module::images/demo.jpg');

        exit;
        //return $file;;

    }
}

Best Answer

Use \Magento\Framework\View\Asset\Repository class

protected $_assetRepo;

public function __construct(
    ...
    \Magento\Framework\View\Asset\Repository $assetRepo,
    ...
) {
    ...
    $this->_assetRepo = $assetRepo;
    ...
}

Now, you can get image URL by

echo $this->_assetRepo->getUrl("Vendor_Module::images/demo.jpg");
Related Topic