【PHP】Yii2中的资源管理的sourcePath/basePath/baseUrl分别是指的什么

sourcePath/basePath/baseUrl

sourcePath 源文件路径

sourcePath的位置位于vendor/yiisoft/yii2/web/AssetBundle.php
指的是项目的模板引用的资源的源文件,如果设置的资源文件目录是不能被直接访问的,那么在访问的时候Yii2会将需要的文件复制到临时文件夹中。

比如,我们将sourcePath设置为@app/res/,也就是静态资源文件(图片,css,js)都放在/res

显然/res不在/web下,那么不能被直接访问,所以,我们引入发布资源的概念,让你需要的资源文件在视图文件中引用资源包被注册。

basePath 基础路径

basePath指的是包含这个AssetBundle中资源文件的Web可访问目录。

但是当你设置了sourcePath,则basePath就会被AssetManager覆盖。

assetManager的位置,通过查看源代码

    /**
     * Returns the asset manager.
     * @return \yii\web\AssetManager the asset manager application component.
     */
    public function getAssetManager()
    {
        return $this->get('assetManager');
    }

assetManager的获取方式为配置文件的web.php
在这里插入图片描述

baseUrl

baseUrl指的是创建资源包中引用的js和css的基本网址

当资源包中的js采用相对路径表示时,会自动加上baseUrl的设置,比如js/main.js

总结

  • sourcePath可以配置非web目录下的静态资源
  • basePath配置web目录下的静态资源
  • sourcePathbasePath是冲突的,只能二选一
  • baseUrl给引入相对路径的静态资源提供域名前缀
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章