2014-09-08 3 views
2

Yii отлично, но активы - это то, что всегда было странно для меня (начиная с версии 1.1). Я использую Yii2 в настоящее время с расширенным шаблоном приложения. Я хочу зарегистрировать некоторые файлы css/js в frontend main макет (пытается использовать HTML5UP Prologue Template). Как это можно сделать? Я поместил свои файлы css под номером frontend/web/css, js под frontend/web/js и макетные изображения под frontend/web/images dir.Yii2 - активы приложения

Под frontend/assets каталога я создал PrologueAssets класс вроде этого:

namespace frontend\assets; 
use yii\web\AssetBundle; 

class PrologueAssets extends AssetBundle { 

    public $sourcePath = "@webroot"; 
    public $css = [ 
     'css/skel.css', 
     'css/style.css', 
     'css/style-wide.css', 
    ]; 
    public $js = [ 
     'js/jquery.min.js', 
     'js/jquery.scrolly.min.js', 
     'js/jquery.scrollzer.min.js', 
     'js/skel.min.js', 
     'js/skel-layers.min.js', 
     'js/init.js', 
    ]; 

    static function register($view) { 
     die(self::sourcePath); 
     parent::register($view); 
    } 

} 

К сожалению, ни один из этих файлов не зарегистрированы. Как это сделать?

Маленький второй вопрос - как зарегистрировать файлы css, только если, например, обнаружен IE8 или IE9?

+0

Что происходит, когда вы включаете CSS и JS файлы на 'AppAsset.php' (вместо' PrologueAssets.php'? –

+0

@PrabowoMurti - это было интересно. Он пытался включить файлы, но не по отношению к базовому url, но в текущем состоянии, поэтому он работал только на главной странице. Довольно странно, особенно, когда в то же время по умолчанию yiis 'site.css' является – Joe

+0

Я сделал обходной путь - включил файлы в поле зрения с помощью 'Url :: base()' для генерации базового url и путем добавления 'css/...' или 'js/...' до конца. аль пути мыслительных активов сложны в Yii. – Joe

ответ

1

Я хотел бы добавить два файла, один под frontend/web/css/custom.css и frontend/web/js/custom.js я просто нашел интерфейс/активы/AppAsset.php и добавил их напрямую, и два файла загружены для каждой загружаемой страницы.

class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
     'css/site.css', 
     'css/custom.css', 
    ]; 
    public $js = [ 
     'js/custom.js', 
    ]; 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\bootstrap\BootstrapAsset', 
    ]; 
} 
0

Это, как вы зарегистрируетесь JS или CSS для т.е. 8 только

namespace app\assets; 
use yii\web\AssetBundle; 
class IE8Assets extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css=[ 
      'css/ie8.css' 
    ]; 
    public $cssOptions = ['condition' => 'lte IE9']; 
    public $js =[ 
      'js/jquery-1.11.3.min.js', 
      'js/jquery-migrate-1.2.1.min.js', 
    ]; 
    public $jsOptions = ['condition' => 'lte IE9']; 
} 
Смежные вопросы