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目录下的静态资源sourcePath
和basePath
是冲突的,只能二选一baseUrl
给引入相对路径的静态资源提供域名前缀