2016-02-29 157 views
3

我已经在magento2中尝试了很多选项来查找媒体路径URLMagento2在.phtml文件中的媒体路径

我如何在模板中找到媒体路径URL。

我有尝试

$object_manager = Magento\Core\Model\ObjectManager::getInstance(); 
$dir = $object_manager->get('Magento\App\Dir'); 
$mediaUrl = $dir->getDir(\Magento\App\Dir::MEDIA); 

但它给我的错误类未找到。我有搜索,并找到了一个解决方案来创建块文件功能,但有很多地方我想在我的设计中使用媒体路径

在此先感谢。

回答

0

给它下面的代码尝试:

$object_manager = \Magento\Framework\App\ObjectManager::getInstance(); 
$dir = $object_manager->get('Magento\App\Dir'); 

$mediaUrl = $dir->getDir(\Magento\App\Dir::MEDIA); 
0

正确的方式来获得媒体PHTML是:

$block->getViewFileUrl('images/myimage.png'); 
+1

这会返回pub/static而不是pub/media –

+0

这是大多数人实际需要的,pub/static /中的images文件夹对于您的模块/主题 –

0
//Case 1: $objectManager outside magento 
use Magento\Framework\App\Bootstrap;  
include('your-path-to-/app/bootstrap.php'); 
$bootstrap = Bootstrap::create(BP, $_SERVER); 
$objectManager = $bootstrap->getObjectManager(); 


//Case 2: $objectManager inside magento 
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 

$mediaDir = $objectManager->get('Magento\Framework\App\Filesystem\DirectoryList')->getPath('media'); 
$mediaUrl = $objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA); 


// Case 3: Inside model 
public function __construct(
\Magento\Framework\View\Element\Template\Context $context, 
\Magento\Framework\App\Filesystem\DirectoryList $directory_list, 
\Magento\Store\Model\StoreManagerInterface $url, 
array $data = []) { 
    parent::__construct($context, $data); 
    $this->directory_list = $directory_list; 
    $this->url = $url; 
} 
$this->directory_list->getRoot();//root folder path 
$this->directory_list->getPath('media');//media folder path 
$this->url->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA); 

它的工作对我罚款。

3

这是如何从块或模板中获取媒体路径。

$this->getUrl('pub/media') 
0

有两种方式对获得PHTML文件中的媒体路径:

第一种方式

$om = \Magento\Framework\App\ObjectManager::getInstance(); 
    $storeManager = $om->get('\Magento\Store\Model\StoreManagerInterface'); 
    var_dump($storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA)); 

第二种方式

的index.php

载:

define('MAGENTO_ROOT', getcwd()); 

有人会做这样的事情:

$mediaPath = MAGENTO_ROOT.'/pub/media/'; 
0

好,于我而言,这工作:

<?php 
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
    $storeManager = $objectManager->get('Magento\Store\Model\StoreManagerInterface'); 
    $store = $storeManager->getStore(); 
    $mediaUrl = $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA); 
?> 
0

$baseurl=$block->getUrl();

返回你的内部PHTML的BaseURL。