Mage :: getBaseUrl () vs Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB)

26

Gibt es einen Grund, Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)anstatt zu verwenden Mage::getBaseUrl()? Ich habe beide im Einsatz gesehen, und beide geben dasselbe zurück. Ist der längere überflüssig? Es werden auch 2 Funktionsaufrufe verwendet.

Außerdem sehe ich, dass Mage_Core_Model_Store::URL_TYPE_WEBeinfach die Zeichenfolge "web" zurückgegeben wird. Was ist der Sinn davon?

Buttle Butkus
quelle

Antworten:

40

Schauen Sie sich zuerst getBaseUrl()anMage.php

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

Mit einem einfachen Wort können wir sagen:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)wies Dein Magento Site Urlaus this url Magento is running it System.

Und mit anderen Worten, das können wir sagen 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):

Wert Eingestellt um : Von Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Wert Eingestellt um : Von Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Hauptunterschied zeigt:

Jedes Mal , wenn wir ermöglichen werden Use Web Server Rewrites = novon admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) Geben Sie den Wert von http://youdomain/

aber Mage::getBaseUrl()gib einen Wert an http://youdomain/index.php/, der tatsächlich den Wert von gibt Mage_Core_Model_Store::URL_TYPE_LINK

wenn du hit http://youdomain/das rufst Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url Aber der times you can see all pagelink von dir site is starting with http://youdomain/index.php/ das heißt es genommenMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Beispiel:

Wenn Sie einen Ordner erstellt haben und amit at Magento root dir and there you have put a file test.jsdiese Datei bei Magento aufrufen möchten, können Sie diesen Code verwenden

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

und es gibt dann url

www.yourdomain/amit/test.js

Wenn du nur Mage::getBaseUrl()die gibst www.yourdomain/index.php/amit/test.js, bedeutet das, dass auf test.js nicht zugegriffen werden kann (wenn rewite deaktiviert ist)

Sie haben jedoch einen neuen Controller und eine neue Aktion erstellt, die Sie verwenden können

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

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

oder give http://yourdomain/yourmodulerouter/yourcontroller/youraction(beim Umschreiben enable)

Amit Bera
quelle
Funktioniert es also Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)besser, wenn wir die Umschreibungen aktiviert haben?
Buttle Butkus
no.Mage :: getBaseUrl (): wird immer für magento pageliks verwendet
Amit Bera
Danke fürs Helfen. Aber du hast gesagt, das Mage::getBaseUrl()gibt dir einen Link, der index.phpdrin ist. Warum sollte ich diese extra index.php haben wollen, wenn ich sie nicht brauche?
Buttle Butkus
Wenn ich alle Parameter auf Funktion getBaseURL nicht senden () , dann schicken Sie es , wenn params als $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, sichern $ = null)
Amit Bera
Bitte überprüfen Sie diese magento Mage.php
Amit Bera