2016-09-16 8 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は 内の他のフォルダを公開しています。

あなたはこのフォルダを公開するアセット・マネージャーを避けたい場合は、あなたがpublisOptionsexceptパラメータにそれらを言及する必要があります。

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

新しいファイルが画像フォルダに追加された場合、多くはである何、彼らは残ります @ 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

関連する問題