2014-09-08 4 views
2

Yii는 훌륭하지만 자산은 항상 저에게 이상했습니다 (1.1 버전 이후). 고급 앱 템플릿과 함께 Yii2를 사용하고 있습니다. 프런트 엔드 main 레이아웃보기 (사용하려고 시도 HTML5UP Prologue Template)에서 일부 CSS/JS 파일을 등록하고 싶습니다. 어떻게 할 수 있습니까? 내 css 파일을 frontend/web/css 디렉토리 아래에 js 아래에 frontend/web/js 아래에 배치하고 frontend/web/images 디렉토리 아래에 레이아웃 이미지를 배치했습니다.Yii2 - 앱 저작물

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); 
    } 

} 

은 불행하게도 이러한 파일 중 어느 것도 등록되지 않은 :

frontend/assets 디렉토리에서이 같은 PrologueAssets 클래스를 만들었습니다. 그렇게하는 방법?

조금 두 번째 질문 - 예를 들어 IE8 또는 IE9가 감지 된 경우에만 CSS 파일을 등록하는 방법은 무엇입니까?

+0

당신이 AppAsset.php' (대신'PrologueAssets.php''에 CSS와 JS 파일을 포함하면 어떻게됩니까? –

+0

@PrabowoMurti - 흥미 롭다. 기본 URL과 관련이없는 파일을 포함 시키려고했으나 현재는 홈페이지에서만 작동했다. 아주 이상하게도, 동시에 기본 yiis'site.css'가 – Joe

+0

임시 URL을 생성하고 끝에'css/...'또는'js/... '를 추가하여'Url :: base()'를 사용하여보기에 파일을 포함 시켰습니다. 알 방법은 Yii에서 자산이 복잡하다고 생각했습니다. – Joe

답변

1

나는 두 개의 파일, frontend/web/css/custom.css 미만 단지 frontend/web/js/custom.js I를 추가하고 싶었 프론트 엔드/자산/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']; 
}