微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在yii模块中添加脚本和样式表

我是yii的新手.
我刚刚在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">

有没有人知道在yii中加载样式表的正确方法

解决方法:

受保护文件夹下的所有内容确实受到保护,而且无法公开访问.

在您的情况下,您使用的是模块,而您的文件位于受保护的文件夹中,您需要“发布”它们以便公开访问. Yii中已发布内容认公用文件夹,称为“资产”.并发布我们将使用CAssetManager.

首先创建一个文件夹,其中包含您需要公共访问的所有css,js和图像.将它命名为您想要的任何名称,但标准为其“资产”,因此您的文件结构如下所示:

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

在您的模块中,创建一个属性,用于存储已发布资产的公共URL,以及一种访问它的方法.

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>

Further reading

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐