@Msklf

Вопрос с подключением css/js Yii2?

Yii2 advanced.
Во frontend/assets, файл AppAsset.php
<?php

namespace frontend\assets;

use yii\web\AssetBundle;

/**
 * Main frontend application asset bundle.
 */
class AppAsset extends AssetBundle
{
	public $basePath = '@webroot';
	public $baseUrl = '@web';
	public $css = [
		'css/application.css',
	];
	public $js = [
		'js/application.js',
	];
	public $depends = [
		'yii\web\YiiAsset',
	];
}


Собственно папки frontend\web\js, и frontend\web\css пусты.
В папке frontend\assets у нас
fonts, images, javascripts, stylesheets, AppAsset.php

Приведу скрины папки javascripts
59f90688e8e8c101713838.jpeg

И stylesheets/sass
59f906a4ac31f697492108.jpeg

Соответственно вопрос в том, что страница не видит файлы, путь которых указан а аппассете, т.к. файлов нету. Может они генериться должны, не разберусь. Может кто сталкивался ? (Если нужно какие-то части кода из конфиг, говорите)
  • Вопрос задан
  • 642 просмотра
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Доброй ночи.
Очистите директорию assets, перенесите директории css, js, images уровнем выше, то есть в web/.
Чтобы не засорять излишне директорию assets в конфигурации установите параметр:
'assetManager' => [
           'linkAssets' => true,
       ],

p.s. Статья в помощь
Ответ написан
kimono
@kimono
Web developer
При таком AppAsset как у вас файлы application.css и application.js должны находится в @webroot/css|@webroot/js соответственно.
Если же вы хотите использовать файлы из @frontend/assets то и пишите так:
<?php
namespace frontend\assets;
use yii\web\AssetBundle;

/**
 * Main frontend application asset bundle.
 */
class AppAsset extends AssetBundle
{
  public $sourcePath = '@frontend/assets';
  public $css = [
    'css/application.css',
  ];
  public $js = [
    'js/application.js',
  ];
  public $depends = [
    'yii\web\YiiAsset',
  ];
}

При этом у вас должны быть файлы:
@frontend/assets/css/application.css
@frontend/assets/js/application.js

PS: не лучшая идея хранить этот AppAsset внутри @frontend/assets, потому что при публикации он будет скопирован в @webroot/assets. Либо укажите $publishOptions -> [except] -> ['*.php'].
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы