@pashaa
Студент

Почему alias @web пустой и не настраивается?

//Yii::setAlias('web',  dirname(dirname(__DIR__)) . '/web');  Если сделать так то вываливается куча    //ошибок 404 (site.css,main.js).
$this->registerJs('@web/js/main-index.js',      // Uncaught SyntaxError: Invalid or unexpected token
        $this::POS_HEAD,'main-index');
?>
<h1>main/index</h1>
<p>
    <?= print_r(Yii::$aliases);  ?> // @web => пусто. 
</p>

В разметке выглядит вот так
<script type="text/javascript">@web/js/main-index.js</script>.


Проблему решил.
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
  • AlexMaxTM
    @AlexMaxTM
    Вообще все алисы прописываются в конфиге, я так понимаю вы пытаетесь задать алиас во вьюхе.
    //Yii::setAlias('web',  dirname(dirname(__DIR__)) . '/web');  Если сделать так то вываливается куча    //ошибок 404 (site.css,main.js).

    У вас @web уже определен, но вы пытаетесь его переопределить, но по другому пути dirname(dirname(__DIR__)) . '/web' потому Yii больше не находит каталоги css и js, отсюда куча ошибок 404.

    Теперь далее. Прочтите внимательно формат $this->registerJs, там первый параметр это код JS. У вас же строка '@web/js/main-index.js', именно потому вы получаете полную ерунду типа
    <script type="text/javascript">@web/js/main-index.js</script>


    Подключение внешний js скриптов осуществляется в файле assets/AppAsset.php
    Во вьюхе можно явно подключить ассеты с помощью AppAsset::register($this)
    Можно создавать свои собственные классы подключения и регистрировать в представлениях.

    Чтобы получить значение @web, вызывайте
    echo Yii::getAlias('@web');
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
16 июля 2018, в 20:00
5000 руб./за проект
16 июля 2018, в 18:53
8000 руб./за проект