我在admin
中创建了一个yii
模块,我希望模块使用自定义布局。
所以我将 css 和 js 文件放在protected/module/admin/assets
中,如何包含 css 和 js 该文件夹中的文件?
现在我有另一个问题:
我已将文件放在protected/modules/admin/css/assetsbootstrap.min.css
文件夹中,无论如何我都不能包含它,即使我使用绝对路径。我也会以其他方式尝试:
<link rel="stylesheet" href="<?php echo Yii::app()->baseUrl;?>/protected/modules/admin/css/assetsbootstrap.min.css" />
这种方式在模块中不起作用吗?
答案 0 :(得分:2)
检查此扩展程序
打开AdminModule.php,有用于配置管理模块的位置。我只是发布你需要的部分
public function getAssetsUrl()
{
if (!isset($this->assetsUrl))
{
$assetsPath = Yii::getPathOfAlias('admin.assets');
$this->assetsUrl = Yii::app()->assetManager->publish($assetsPath, false, -1, $this->forceCopyAssets);
}
return $this->assetsUrl;
}
protected function registerCoreCss()
{
Yii::app()->clientScript->registerCssFile($this->getAssetsUrl() . '/css/admin.css');
}
protected function registerScript(){
$js_arr = array('jquery.min.js', 'jqueryui.js'); //put what js file name that you need to import from admin assets folder
foreach($js_arr as $filename){
Yii::app()->getClientScript()->->registerScriptFile($this->getAssetsUrl().'/js/'.$filename, CClientScript::POS_END);
}
}
然后在init()
public function init(){
//set import ...
// configure module ...
// configure component ....
$this->registerCoreCss();
$this->registerScript();
}
答案 1 :(得分:1)
你在这里:
$baseUrl = Yii::app()->baseUrl;
$cs = Yii::app()->getClientScript();
$cs->registerScriptFile($baseUrl.'/js/yourscript.js');
$cs->registerCssFile($baseUrl.'/css/yourcss.css');
OR
编辑config / main.php
// application components
'components'=>array(
// ...
'clientScript'=>array(
'packages'=>array(
'jquery'=>array(
'baseUrl'=>'//ajax.googleapis.com/ajax/libs/jquery/1/',
'js'=>array('jquery.min.js'),
)
),
),
// ...
),