如何添加警予模块内部脚本和样式(How do i add scripts and styleshee

2019-08-01 16:09发布

我是新来的Yii。 我刚刚创建了一个模块中警予的文件结构如下:

 -yii
  -protected
     -modules
        -admin
           -controller
           -model
           -view
               -layout
                    -main.php
           -css
               -style.css
           -images
               -logo.jpg

我能设置布局喜欢这个

'modules'=>array(
    // uncomment the following to enable the Gii tool

           'admin'=>array(
                 'layoutPath' => 'protected/modules/admin/views/layouts',  ;

现在布局从管理模块呈现的问题是,我不能使用加载样式表

<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/protected/modules/admin/css/reset.css"  media="all">

有谁知道加载在警予样式表的正确方法

Answer 1:

受保护的文件夹下的一切的确,受保护,而不是公众开放。

你的情况,你正在使用一个模块和您的文件中保护的文件夹,你需要“发布”他们是公众开放。 在Yii中发表的东西默认公用文件夹其所谓的“资产”。 并公布我们将使用CAssetManager 。

首先创建一个包含你需要的公共访问所有的CSS,JS和图片的文件夹。 它命名为任何你想要的,但标准的“资产”,所以taht你的文件结构如下所示:

 -yii
  -protected
     -modules
        -admin
           -controller
           -model
           -view
               -layout
                    -main.php
           -assets
               -css
                   -style.css
               -js
               -images
                   -logo.jpg

在你的模块创建将存储资产公布的公开网址,并访问它的方法的属性。

private $_assetsUrl;

public function getAssetsUrl()
{
    if ($this->_assetsUrl === null)
        $this->_assetsUrl = Yii::app()->getAssetManager()->publish(
            Yii::getPathOfAlias('admin.assets') );
    return $this->_assetsUrl;
}

然后,您可以像这样访问你的资产:

<link rel="stylesheet"
         type="text/css"
         href="<?php echo $this->module->assetsUrl; ?>/css/main.css"/>
   ...
   <div id="logo">
   <?php echo CHtml::link(
                 CHtml::image($this->module->assetsUrl.'/images/logo.png'),
                 array('/xxii')); ?>
   </div>

延伸阅读



文章来源: How do i add scripts and stylesheets inside yii module
标签: php yii