У меня есть все мои файлы CSS и JavaScript в AppAsset, которые я загружаю в файл макета. На моей странице входа я не хочу использовать макет, поэтому я визуализирую файл представления входа с помощью метода renderPartial(). При этом я создал новый файл LoginAsset и использовал его для регистрации представления входа в систему, но мои CSS и JS все еще не загружаются. Я также попытался зарегистрировать представление входа в систему с помощью пакета AppAsset, но он также не загружает CSS и JS. Есть ли что-то, что я делаю неправильно? Как я могу загрузить свой набор активов при использовании renderPartial на моем контроллере?
yii2: пакет ресурсов не загружает ресурсы, когда я загружаю страницу с помощью метода renderPartial
Ответы (2)
Привет, @Zack, твоя проблема в том, что ты не указал местонахождение конечной части тела и конечной страницы. Я решил свою проблему, добавив эти коды в нижнюю часть моей страницы.
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
person
veyselsahin
schedule
10.02.2016
Как сказал Павел, вы должны использовать renderAjax()
. См. объяснение ниже.
Вывод renderPartial()
представляет собой кусок HTML, сгенерированный представлением без каких-либо CSS и JS:
<div class="container">
<input type="text" id="loginform-username" class="form-control" name="LoginForm[username]">
<input type="password" id="loginform-password" class="form-control" name="LoginForm[password]">
<button type="submit" class="btn btn-primary btn-block" name="login-button">Log in</button>
</div>
Но renderAjax()
добавляет CSS и JS из всех зарегистрированных ресурсов в представлении к выходным данным:
<link href="/assets/f1759119/css/bootstrap.css" rel="stylesheet">
<div class="container">
<input type="text" id="loginform-username" class="form-control" name="LoginForm[username]">
<input type="password" id="loginform-password" class="form-control" name="LoginForm[password]">
<button type="submit" class="btn btn-primary btn-block" name="login-button">Log in</button>
</div>
<style>
...
</style>
<script>
...
</script>
<script src="/assets/13aa7b5d/jquery.js"></script>
<script src="/assets/302a2946/yii.js"></script>
<script src="/assets/302a2946/yii.activeForm.js"></script>
PS. Я думаю, что правильный путь - создать отдельный макет для формы входа и использовать обычный метод render()
.
person
Anton Rybalko
schedule
23.11.2016
renderPartial
. - person arogachev   schedule 06.04.2015