Вообще все алисы прописываются в конфиге, я так понимаю вы пытаетесь задать алиас во вьюхе.
//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');