Esta es el arreglo más correcta que encomtrarás aportar, pero mírala detenidamente y analiza si se adapta a tu proyecto.
Solución:
Gracias a Khoa por su explicación, lo que quería lograr es que en mi formulario de administrador llame a una URL externa con ajax. estaba usando un static path, así que lo quería dinámicamente. Así que esto es lo que he hecho.
Mi archivo XML de diseño
Diseño de archivo Phtml Definí la baseUrl.
Mi archivo de bloque que devuelve la URL base
_configReader = $configReader;
parent::__construct($context);
public function getAdminBaseUrl()
$config = $this->_configReader->load();
$adminSuffix = $config['backend']['frontName'];
return $this->getBaseUrl() . $adminSuffix . '/';
Ahora en mis archivos js puedo usarlo como.
define([
'Magento_Ui/js/form/element/abstract',
'mage/url'
], function (Abstract, url)
'use strict';
return Abstract.extend(
url.build('namespace_module/controllername/action/');
);
);
Solo haz eso solo en el archivo js
define(['mage/url'],
function (url)
'use strict';
var url = url.build('//');
);
El resultado será:
http://ip_address///
Lo más importante que debemos saber: Necesitamos establecer la URL base para url.build('
:
lib/web/mago/url.js
setBaseUrl: function (url)
baseUrl = url;
,
build: function(path)
if (path.indexOf(baseUrl) != -1)
return path;
return baseUrl + path;
Básicamente, hay dos lugares donde configurar la URL base:
vendor/magento/module-checkout/view/frontend/templates/onepage.phtml
vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml
return url.setBaseUrl('getBaseUrl();?>');
Entonces, en su administrador, debe configurar la URL base del administrador.
Más adelante puedes encontrar las explicaciones de otros gestores de proyectos, tú además tienes la opción de dejar el tuyo si lo deseas.