Câu trả lời:
Sử dụng mã dưới đây để nhận url hình ảnh trong view
<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
CẬP NHẬT:
<?php echo $block->getViewFileUrl('images/demo.jpg'); ?>
Để có được Đường dẫn hình ảnh trong Trình trợ giúp hoặc Trình điều khiển của bạn, bạn cần sử dụng
use Magento\Framework\View\Asset\Repository;
use Magento\Framework\App\RequestInterface; // for $this->request
trong tập tin của bạn
Khi bạn thêm kho lưu trữ và tạo đối tượng assetRepo
& request
, hãy gọi đường dẫn hình ảnh với chức năng,
$params = array('_secure' => $this->request->isSecure());
$this->assetRepo->getUrlWithParams('Nitesh_Module::images/image.png', $params);
Tham khảo vendor\magento\module-payment\Model\CcConfig.php::getViewFileUrl($fileId, array $params = [])
chức năng
BIÊN TẬP
Để có được đường dẫn hình ảnh chính xác cho các tập lệnh Thiết lập, lệnh gọi API và Cronjobs, bạn sẽ cần phải thêm mô phỏng như bên dưới để có được đường dẫn hình ảnh chính xác.
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();
}