2016-02-29 68 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。

相關問題