【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給引入相對路徑的靜態資源提供域名前綴
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章