简而言之,yii中protect目录下面的内容都是受保护的,但是如果你有使用module的话,一些必须要被访问的例如css,js文件都是要可以访问的,于是,yii就会在webroot下面的assets文件夹下面生成随即数字的文件来存放不同module下面的文件,举例如下:
我有一个后台管理模块admin
首先要在AdminModule.php中设置你的asset资源位置,假如我admin模块下面的资源文件放置在/protected/modules/admin/assets
private $_assetsUrl;
public function getAssetsUrl(){
if($this->_assetsUrl === null){
$this->_assetsUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.modules.admin.assets'), false, -1, YII_DEBUG);
return $this->_assetsUrl;
}
}
public function setAssetsUrl($value){
$this->_assetsUrl = $value;
}
注:默认的开发阶段是强制读取最新的资源的,like ‘ ($path,false, -1, YII_DEBUG)’
然后就是在view页面调用了
<script type="text/javascript" src="<?php echo $this->module->assetsUrl; ?>/js/xxx.js"></script>