Как правильно подключить стили

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Как правильно подключить стили

Сообщение S1lver »

Доброго времени суток!

Подскажите пожалуйста, как можно правильно вывести подключение файлов стилей?

В корневой директории папка assets, в ней AppAsset.php

Код: Выделить всё

<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle{
    public $basePath = "@webroot";
    public $baseUrl = "@web";
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
} 
По пути protected/views/layouts/main.php

Код: Выделить всё

<?php
use yii\helpers\Html;
use app\assets\AppAsset;
/**
 * @var string $content
 */
?>
<!DOCTYPE html>
    <html lang="<?php echo Html::encode(\Yii::$app->language); ?>">
<head>
    <title><?php echo Html::encode(\Yii::$app->name);?></title>
    <meta charset="<?php echo Html::encode(\Yii::$app->charset);?>"/>
    <?php  $head = new AppAsset();
            echo $head->css;
    ?>
</head>
<body>
    <div class="container">
                    <a class="btn btn-xs btn-success" href="/"><?php echo Html::encode(\Yii::$app->name);?></a>
        <div class="content">
             <?php echo $content; ?>
        </div>
    </div>
</body>
    </html>
Получаю Class 'app\assets\AppAsset' not found
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Как правильно подключить стили

Сообщение maleks »

Ошибка странноватая, но в общем вы некорректно работаете, в доках то написано:

Код: Выделить всё

AppAsset::register($this);
,а не как вы делаете:

Код: Выделить всё

$head = new AppAsset();
echo $head->css;
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: Как правильно подключить стили

Сообщение S1lver »

Вообще-то ничего и не поменялось. Выдает Class 'app\assets\AppAsset' not found

В корне есть папка apps\basic
IDE предупреждает в файле assets\AppAsset.php, что AppAsset

Код: Выделить всё

class AppAsset extends AssetBundle{
Other declaration of class AppAsset exist at basic\…\AppAsset.php

В protected/views/layouts/main.php предупреждает, что use app\assets\AppAsset;
Multiple definitions exist for class AppAsset

и ниже в коде

Код: Выделить всё

<?php  AppAsset::register($this);
Multiple definitions exist for class AppAsset

Если удалить папку apps, то предупреждения пропадают
Последний раз редактировалось S1lver 2014.06.05, 11:57, всего редактировалось 2 раза.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как правильно подключить стили

Сообщение slavcodev »

Корневая папка это какая? Там где inde.php или там где папка controllers, views?
У тебя должен быть файл по пути protected/assets/AppAsset.php и регистр букв проверь.
Жду Yii 3!
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: Как правильно подключить стили

Сообщение S1lver »

slavcodev писал(а):Корневая папка это какая? Там где inde.php или там где папка controllers, views?
У тебя должен быть файл по пути protected/assets/AppAsset.php и регистр букв проверь.
Папка assets лежала в корне, т.е по пути //yii2/assets. Переместил, как вы посоветовали, ее по пути //yii2/protected/assets. Теперь Yii2 ругается, что не может ее найти :?
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: Как правильно подключить стили

Сообщение S1lver »

Я вот думаю, может у меня какая путаница с директориями?

Я получил копию с гитхаба. Структура сейчас такая

yii2
  • build
  • docs
  • extensions
  • framework
  • protected
  • assets
  • AppAsset.php
  • config
  • controllers
  • css
  • models
  • runtime
  • views
  • tests
index.php
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Как правильно подключить стили

Сообщение maleks »

Почитайте в доках как yii2 нужно устанавливать через composer:
http://www.yiiframework.com/doc-2.0/gui ... ation.html
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как правильно подключить стили

Сообщение slavcodev »

S1lver писал(а):
slavcodev писал(а):Корневая папка это какая? Там где inde.php или там где папка controllers, views?
У тебя должен быть файл по пути protected/assets/AppAsset.php и регистр букв проверь.
Папка assets лежала в корне, т.е по пути //yii2/assets. Переместил, как вы посоветовали, ее по пути //yii2/protected/assets. Теперь Yii2 ругается, что не может ее найти :?
Я не говорил ее туда перемещать :)
Папка assets рядом с входным скриптом index.php нужна для публикации туда ресурсов. Папка наполняется программно, должна находится в открытом доступе, к окторой можно попасть по ссылку http://localhost/assets/

А классы должны быть в защищенной папке protected/assets/тут_классы_ресурсов

Почитай документацию по ресурсам из Yii1, если еще нет по Yii2, хоть базовые понятия поймешь.
Жду Yii 3!
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Как правильно подключить стили

Сообщение maleks »

да у него приложение не установлено.
Это он с гитхаба отсюда просто скопировал.
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: Как правильно подключить стили

Сообщение S1lver »

Папка assets рядом с входным скриптом index.php нужна для публикации туда ресурсов. Папка наполняется программно, должна находится в открытом доступе, к окторой можно попасть по ссылку http://localhost/assets/
Теперь никаких ошибок нет, но и подключения не происходит
mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Как правильно подключить стили

Сообщение mickgeek »

S1lver, http://www.yiiframework.com/download. Начните с правильной установки фреймворка.
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: Как правильно подключить стили

Сообщение S1lver »

mickgeek писал(а):S1lver, http://www.yiiframework.com/download. Начните с правильной установки фреймворка.
Я установил фреймворк, и открывается базовое приложение. В нем, чтобы подключить дополнительный стиль, достаточно дописать в AppAsset.php

Код: Выделить всё

    public $css = [
        'css/site.css',
    'css/test.css',
    ]; 
И стили подключаются.

Вопрос то в другом, что если создавать проект с нуля, в этом случае проблемы
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как правильно подключить стили

Сообщение samdark »

Ну, придётся создать свой AppAsset и вызвать его в layout. Это проблема?
Ответить