【问题标题】:How do i add scripts and stylesheets inside yii module如何在 yii 模块中添加脚本和样式表
【发布时间】:2014-12-31 21:53:22
【问题描述】:

我是 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 中加载样式表的正确方法

【问题讨论】:

  • 如果你的配置文件,添加一个参数作为一个数组,并将模块的路径存储到它。在指定图像和 css 的路径时使用 href 中的相对路径。这是一种方式。另一个当然是在您的基本路径中包含所有文件。即根目录中的 /css /images。
  • @UjjwalPrajapati 是的,只是为了让它正确,我会做这样的事情......但我知道这不是正确的方法......

标签: php yii


【解决方案1】:

受保护文件夹下的所有内容确实是受保护的,并且不可公开访问。

在您的情况下,您正在使用一个模块并且您的文件位于受保护的文件夹中,您需要“发布”它们以供公众访问。 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

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2022-11-17
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多