2016-09-16 2 views
0

어리석은 일이지만, 저작물의 파일을 게시 할 때 사용하는 구문이 올바른지 묻고 싶을뿐입니다. The Guide은 별표가없는 폴더 이름을 사용하도록 지시하지만 나에게는 그렇게 작동하지 않습니다.Yii2 AssetBundle publishOptions 패턴 구문?

이상하게도 css 및 images 폴더 만 게시하도록 지정하는 경우에도 assetManager는 $sourcePath (운 좋게도 파일이 없어도)에 다른 폴더를 게시합니다. 또한, 새로운 파일이 이미지 폴더에 추가되면 @web/assets 폴더를 삭제할 때까지 게시되지 않습니다. 예상 되나요? 당신이 $sourcePath 또는 $baseUrl이 둘 중 설정해야

<?php 
namespace app\views\layouts\main\assets; 
use yii\web\AssetBundle; 

class ThemeAsset extends AssetBundle 
{ 
    public $sourcePath = '@theme'; 
    public $baseUrl = '@web'; 
    public $css = [ 
     'css/site.css', 
    ]; 

    public $publishOptions = [ 
     "only" => [ 
      "css/*", 
      "images/*", 
     ], 
     "forceCopy" => false, 
    ]; 
} 
+0

마지막 질문 ... 힘 복사 매개 변수 값이 false이기 때문에 그건 :

public $publishOptions = [ 'only' => [ 'js/', 'css/', ], 'forceCopy' => YII_DEBUG, ]; 

그래서 완전히이 같은 자산 관리자가 있습니다. – StalkAlex

답변

2

첫 번째 주 (당신이 모두를 설정하면, 전자는 지난 덮어 쓰기 할 때 assetManager 전화 publish 방법).

이상한 것은 내가 단지 CSS와 이미지 폴더를 게시 지정하는 경우에도되면, assetManager도 (내부 다행히 파일없이) $ SOURCEPATH 다른 폴더를 게시합니다.

'except' => [ 
    "doc/", 
    "img/", 
], 

가 무엇보다, 새로운 파일이 이미지 폴더에 추가 될 때, 그들은 유지 :이 폴더를 게시하는 자산 관리자를 방지 싶다면

, 당신은 publisOptionsexcept 매개 변수에 그들을 언급해야 @ web/assets 폴더를 삭제할 때까지 게시가 취소되었습니다. 예상 되나요?

예! 그것은 자연스러운 행동입니다. 개발 모드에서 forceCopy 속성을 publishOptions ~ true으로 설정할 수 있습니다. 이로 인해 새로 고침 할 때마다 자산 내용이 업데이트됩니다. 쉽게 Yii 생산 상수 : YII_DEBUG을 사용할 수 있습니다. 그들은 미 출판 될 ...

<?php 
namespace app\views\layouts\main\assets; 
use yii\web\AssetBundle; 

class ThemeAsset extends AssetBundle 
{ 
    public $sourcePath = '@theme'; 

    public $css = [ 
     'css/site.css', 
    ]; 

    public $publishOptions = [ 
     "only" => [ 
      "css/*", 
      "images/*", 
     ], 
     'except' => [ 
      "doc/", 
      "img/", 
     ], 
     "forceCopy" => YII_DEBUG, 
    ]; 
} 
+0

* .less 파일에 대해서만 어떻게 예외가 작동하는지 알고 있습니까? 적은 파일을 변환하지만 복사하지 않기를 바랍니다. 하지만 'only'=> 'css/*. css'를 추가하면 적은 파일이 변환되지 않습니다. 'except'=> '* .less'를 추가하면 전환도 완료되지 않습니다. – BHoft

+0

사실 이제는 문제에 대해 전혀 알지 못하며 또한 'AssetBundle'소스를 읽는 데 대한 자유 시간도 없습니다. 해결책. 새로운 질문을 올리시기 바랍니다. @BHoft – meysam