平时使用各种库各种包都会带上css和js文件,或者是字体文件。而这些文件又比较大,几百元买来的云服务器只有1M的带宽,如果每次都从服务器发送那肯定人多了1M带宽不够用的。放在cdn是一个很好的选择,由cdn将这方面流量承担了,云服务器负担就小了这1M带宽也能很好的提供给更多的用户去快速的访问你的网站。

当然本文不讨论cdn,本文讨论的是yii使用公共cdn静态资源库去替代本地的一些公共资源库。类似bootstarp还有jquery这些便可以使用静态资源库。直接上代码吧:

首先打开config配置文件,在components中加入下面的配置


'components' => [
    ......
    'assetManager' => [
        'bundles' => [
            'yii\web\JqueryAsset' => ['js' => ['https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js']],
            'yii\bootstrap\BootstrapAsset' => ['css' => ['https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css']],
            'yii\bootstrap\BootstrapPluginAsset' => ['js' => ['https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js']],
            'frontend\assets\SwiperAsset' => ['css' => ['https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.4.6/css/swiper.min.css'], 'js' => ['https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.4.6/js/swiper.min.js']],
        ],
    ],
    ......
]


这样添加后,依赖于yii\web\JqueryAsset的就会使用js里数组指定的外链地址来加载依赖的前端资源,当然再怎么描述不如亲自试一下就明白了。

如果这个Asset同时需要css和js,例如frontend\assets\SwiperAsset的,那么一个数组,填上css和js的数组就可以了。


整理一些公共cdn库:

七牛云:点击前往

BootCDN:点击前往

cdnjs:点击前往(使用CF,可能国内有些地区无法访问)

除了使用上面的cdn加速静态资源外,也可以使用自己使用的cdn服务商去加速静态资源,那样不需要修改任何配置文件,因为默认都会给你缓存上css、js和图片这类静态文件。