Yii2官方文档的小bug记录 -- publishOptions

2017-9-28 邪哥

文档地址

http://www.yiiframework.com/doc-2.0/guide-structure-assets.html 

有兴趣的同学可以先看下官方原文档

文档样例代码


<?php
namespace app\assets;

use yii\web\AssetBundle;

class FontAwesomeAsset extends AssetBundle 
{
    public $sourcePath = '@bower/font-awesome'; 
    public $css = [ 
        'css/font-awesome.min.css', 
    ];
    public $publishOptions = [
        'only' => [
            'fonts/',
            'css/',
        ]
    ];
}


官方文档给出的说明是,如此配置之后仅发布 fonts 及 css 资源目录


The above example defines an asset bundle for the "fontawesome" package.
 By specifying the only publishing option, 
only the fonts and css subdirectories will be published.


但实际上,不会有任何资源文件被拷贝,包括 fonts 和 css 目录及其中的资源文件。

实测项目版本 yii2.0.12 

排除了权限等其它因素之后,仔细的去核查了资源文件发布的源码,问题就出在 only 限制条件中的元素写法上

元素规则实际上需要符合正则表达式的部分需求。

有兴趣的同学可以进一步深挖一下  BaseFileHelper.php 中 copyDirectory 方法的源码


正确的写法其实很好理解,如下


    public $publishOptions = [
        'only' => [
            'fonts/*',
            'css/*',
        ]
    ];



由于直接参考的官方文档,但是出现资源文件未成功加载的异常... 在这个问题上花费了些不必要的精力

所以分享出来给大家, 希望大家不要踩同样的坑 :)




芝麻绿豆 Yii2

(0) (294)

发表评论: