Mage :: getBaseUrl () проти Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB)


26

Чи є причина використовувати, Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)а не Mage::getBaseUrl()? Я бачив обох у користуванні, і вони обидва повертають одне і те ж. Чи довше одне зайве? Він також використовує 2 виклики функцій.

Більше того, я бачу, що Mage_Core_Model_Store::URL_TYPE_WEBпросто повертає рядок 'web'. В чому сенс?

Відповіді:


40

Перший погляд getBaseUrl()наMage.php

 public static function getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)
    {
        return self::app()->getStore()->getBaseUrl($type, $secure);
    }

Простим словом можна сказати:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)вказав ваш Magento Site Urlвід this url Magento is running it System.

І іншим словом, ми можемо це сказати Mage::getBaseUrl() give the url which is linking your magento internal page urls That MVC page

Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB):

Значення, встановлене на : Від Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Значення, встановлене на : Від Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Основна різниця Показано:

Всякий раз , коли ми дозволяємо Use Web Server Rewrites = noз admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) дати значення http://youdomain/

але Mage::getBaseUrl()дайте значення, http://youdomain/index.php/яке насправді дає значення Mage_Core_Model_Store::URL_TYPE_LINK

коли ви hit http://youdomain/називаєте Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) URL-адресу виклику, але ця times you can see all pageваша посилання site is starting with http://youdomain/index.php/ означає, що вона прийнятаMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Приклад:

Якщо у вас створена папка, amit at Magento root dir and there you have put a file test.jsви хочете зателефонувати в цей файл до дому magento, тоді ви можете використовувати цей код

<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'amit/test.js'; ?>

і це дасть тоді URL

www.yourdomain/amit/test.js

Якщо ви використовуєте лише ті, Mage::getBaseUrl()які дають, www.yourdomain/index.php/amit/test.jsщо означає, що тест.js не може бути доступний (коли перезавантажити відключити)

Але ви створили новий контролер і нову дію, то можете використовувати

Mage::getBaseUrl().'yourmodulerouter/yourcontroller/youraction'

it show  url like `http://yourdomain/index.php/yourmodulerouter/yourcontroller/youraction`

або надати http://yourdomain/yourmodulerouter/yourcontroller/youraction(коли перезапис увімкнути)


Так Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)буде працювати краще, коли у нас буде включено переписування?
Buttle Butkus

no.Mage :: getBaseUrl (): завжди використовується для magento pageliks
Amit Bera

Дякуємо за допомогу. Але ви сказали, що Mage::getBaseUrl()дає вам посилання, яке є index.phpв ньому. Чому я б хотів отримати додатковий index.php, якщо він мені не потрібен?
Buttle Butkus

Якщо я надсилаю не надсилаю жодного параметра у функції getBaseUrl (), він надсилатиме параметри як $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera

благання перевірити це magento Mage.php
Amit Bera
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.