Не подключаются стили yii2

655
02 апреля 2017, 03:23

Доброго времени суток, кто подскажет, в чем проблема. Не подключаются стили шаблону. Все файлы в папке web есть. Если подключать через link в шаблоне main.php, то все работает , если подключать через AppAsset, то через дебаг видно, что стили слетают к чертям, а именно папки css вообще не видно. Консоль выдает такую ошибку для каждого файла:Failed to load resource: the server responded with a status of 404 (Not Found)

<?php 
/** 
 * @link http://www.yiiframework.com/ 
 * @copyright Copyright (c) 2008 Yii Software LLC 
 * @license http://www.yiiframework.com/license/ 
 */ 
 
namespace app\assets; 
 
use yii\web\AssetBundle; 
 
/** 
 * @author Qiang Xue <qiang.xue@gmail.com> 
 * @since 2.0 
 */ 
class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
        'css/bootstrap.min.css', 
        'css/font-awesome.min.css', 
        'css/prettyPhoto.css', 
        'css/price-range.css', 
        'css/animate.css', 
        'css/main.css', 
        'css/responsive.css', 
    ]; 
    public $js = [ 
    ]; 
    public $depends = [ 
        'yii\web\YiiAsset', 
        'yii\bootstrap\BootstrapAsset', 
    ];

Answer 1

Не будет работать, так как Вы скорее всего не прописали в самом Layout следующее:

1) Нужно зарегистрировать сам Asset следующим образом:

use app\assets\AppAsset;
AppAsset::register($this);

2) Нужно указать начало страницы:

$this->beginPage();

3) Для подгрузки стилей и мета тегов нужно указать Head:

<head>
<meta charset="utf-8">
<!-- Остальной код -->
<? $this->head() ?>
</head>

4) Указываем начало тега Body

<? $this->beginBody() ?>
<body>
<!-- Остальной код -->

5) Указываем завершение тега Body:

<!-- Остальной код -->
<? $this->endBody() ?>
</body>

6) В самом конце указываем конец страницы:

<? $this->endPage() ?>

Это делается для того, чтобы фреймворк Yii знал о том, где подгружать стили и скрипты и все прочее. Стили загружаются в <head>, а js-скрипты перед тегом </body>. Но опять таки через AsseBundle вы можете отрегулировать положение. Это уже другой вопрос, но все же приведу пример:

//Пример. Это нужно указать в AppAsset если хотите, чтобы скрипты подключались в Head
public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
Answer 2

а в main.php

AppAsset::register($this); 

есть?

READ ALSO
проблема со слайдером

проблема со слайдером

Добрый деньНа сайте есть слайдер, который хочу заменить на этот:

253
keyframes не определяется

keyframes не определяется

Написано на stylus с nib префиксы оно ставит самоВ консоли хрома вижу это(св-ва нехарактерные хрому зачеркнуты, остальное валидно)

233
Как сохранять значение после выхода?

Как сохранять значение после выхода?

Всем привет! У меня такой вопрос почему не сохраняется RatingBar так как я сделал оценку, но после выхода из приложения у меня снова оценка 1, а не 4, то есть...

332