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просто возвращает строку «сеть». Какой в ​​этом смысл?

Баттл Буткус
источник

Ответы:

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 home, тогда вы можете использовать этот код

<?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это значение, test.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)будет ли работать лучше, когда мы включили переписывание?
Баттл Буткус
no.Mage :: getBaseUrl (): всегда используется для magento Pageliks
Амит Бера
Спасибо за помощь. Но вы сказали, что Mage::getBaseUrl()дает вам ссылку, которая есть index.phpв нем. Зачем мне этот дополнительный index.php, если он мне не нужен?
Баттл Буткус
Если я отправляю, не отправляю никаких параметров в функцию getBaseUrl (), тогда она отправляет, если параметры в виде $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Амит Бера
пожалуйста, проверьте это magento Mage.php
Амит Бера