Почему в кастомном процессоре пути прописываются относительно корня сайта?

Здравствуйте!
Создал кастомную CMP, создал пространство имен.
В core/components/xmlreader/controllers/index.class.php указано следующее:

<?php
/**
 * The main xmlReader Manager Controller.
 */
class xmlReaderIndexManagerController extends modExtraManagerController {
    /** @var xmlReader $xmlReader */
    public $xmlReader;
    
    public function initialize() {
        $this->xmlreader= $this->modx->getService('xmlreader', 'xmlReader', MODX_CORE_PATH.'components/xmlreader/model/');
        parent::initialize();
    }
    
    public function getLanguageTopics() {
        return array('xmlreader:default');
    }
    
    public function getPageTitle() {
        return $this->modx->lexicon('xmlreader');
    }

    public function checkPermissions() {
        return true;
    }
    
    public function loadCustomCssJs() {
        $this->addJavascript($this->xmlreader->config['jsUrl'].'mgr/home.js');
        $this->addCss($this->xmlreader->config['cssUrl'].'mgr/home.css');
        //Пути в файлам выше проставляются неверно. Сделал логирование специально
        $this->modx->log(1, print_r($this->xmlreader->config['jsUrl'], 1)); //выводится верно
        $this->addHtml('<script type="text/javascript">
        xmlReader.config = ' . json_encode($this->xmlreader->config) . ';
        xmlReader.config.connectorUrl = "' . $this->xmlreader->config['connectorUrl'] . '";
        Ext.onReady(function() {MODx.load({ xtype: "xmlreader-page-home"});});
        </script>');
    }
   
    public function getTemplateFile() {
        return $this->xmlreader->config['templatesPath'].'home.tpl';
    }
}
Пути к CSS и JS файлам почему-то проставляются относительно корня сайта. Т.е. пытается загрузить в итоге файл по адресу:
https://site.ru/var/www/vhosts/site.ru/httpdocs/assets/components/xmlreader/js/mgr/home.js
Почему так происходит?
Временно пришлось указать url к файлам CSS и JS напрямую, как
$this->addJavascript('/assets/components/xmlreader/mgr/home.js');
Lori
07 мая 2024, 00:19
modx.pro
318
0

Комментарии: 2

Андрей Степаненко
07 мая 2024, 19:24
0
Проблема, вероятно, связана с тем, что вы используете неправильные переменные для формирования путей к CSS и JS файлам. В вашем коде вы обращаетесь к переменным `jsUrl` и `cssUrl` в свойстве `config` вашего объекта `xmlReader`. По умолчанию, эти переменные должны содержать относительные пути к JS и CSS файлам относительно корня сайта.

Однако, поскольку пути формируются неправильно и указывают на абсолютные пути на сервере, вам нужно убедиться, что переменные `jsUrl` и `cssUrl` в вашем объекте `xmlReader` правильно сконфигурированы. Возможно, они вам неправильно заданы в конфигурационном файле или в другом месте, откуда вы получаете этот объект.

Если переменные `jsUrl` и `cssUrl` должны содержать абсолютные пути, вы можете изменить их в вашем объекте `xmlReader` таким образом, чтобы они содержали правильные абсолютные пути к вашим JS и CSS файлам.

Пожалуйста, убедитесь, что вы используете правильные переменные для формирования путей к вашим файлам.
    Lori
    07 мая 2024, 22:02
    0
    Странно то, что точно также указаны пути в других компонентах, например migx или clientconfig. Но у них на странице CMP они подключаются норм, а у меня путь абсолютный строится относительно адреса сайта
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2