วิธีรับเส้นทางสื่อใน Magento 2.1 ฉันลองตัวเลือกมากมาย แต่มันไม่ทำงาน
ฉันต้องการแสดงภาพในส่วนหน้าภายในไฟล์. phtml
วิธีรับเส้นทางสื่อใน Magento 2.1 ฉันลองตัวเลือกมากมาย แต่มันไม่ทำงาน
ฉันต้องการแสดงภาพในส่วนหน้าภายในไฟล์. phtml
คำตอบ:
คุณสามารถรับเส้นทางสื่อด้วยวิธี $ object
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
วิธีการโรงงาน
<?php
namespace Namespace\Modulename\Block;
use Magento\Framework\ObjectManagerInterface;
class Banners extends Template
{
protected $objectManager;
public function __construct(
.......
ObjectManagerInterface $objectManager
...) {
...........
$this->objectManager = $objectManager;
...............
}
public function getMediaUrl(){
$media_dir = $this->objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $media_dir;
}
}
........
?>
ในไฟล์phtml
<?php echo $block->getMediaUrl(); ?>
การใช้งาน Object Manager นั้นไม่ได้รับการสนับสนุนตามมาตรฐานการเข้ารหัสของ Magento ในไฟล์เทมเพลตเราสามารถรับ URL สื่อโดยใช้รหัสต่อไปนี้:
$this->helper('\Magento\Cms\Helper\Wysiwyg\Images')->getBaseUrl()
ตามคำแนะนำของ Magento รากเอกสารของเว็บไซต์ของคุณควรอยู่นอกpub
ไดเรกทอรีในระหว่างการพัฒนาและควรอยู่ในpub
ไดเรกทอรีเมื่อย้ายไปผลิต
ดังนั้นเราจึงไม่สามารถเขียนโค้ดpub
ไดเรกทอรีในขณะที่รับ URL สื่อในไฟล์เทมเพลตได้ รหัสด้านบนจะให้ URL สื่อที่ถูกต้องโดยไม่คำนึงถึงที่ตั้งของเอกสารของคุณ
รับเส้นทางสื่อโดย objectManager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
รับเส้นทางสื่อโดยการพึ่งพาการฉีด
protected $_storeManager;
public function __construct(
...
\Magento\Store\Model\StoreManagerInterface $storeManager,
...
) {
...
$this->_storeManager = $storeManager;
...
}
public function getMediaUrl()
{
$mediaUrl = $this->_storeManager
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $mediaUrl;
}
ตอนนี้เรียกใช้ฟังก์ชันgetMediaUrl()
ในPHTML
<?php echo $block->getMediaUrl(); ?>
$ this -> _ storeManager-> getStore () -> getBaseUrl (\ วีโอไอพี \ Framework \ UrlInterface :: URL_TYPE_MEDIA);
กรุณาตรวจสอบรหัสนี้ มันจะให้เส้นทางสื่อ