如何以及在哪里包含模块的js和css?

时间:2013-04-20 09:03:46

标签: php yii yii-modules

我有类别的模块:

+modules/
 +category/
    +assets/
      +css/
      +js/
      +images/
    +components/
    +controllers/
    +models/
    +views/
    -CategoryModule.php

将css和jss包含在所有视图中的最佳方法是什么?

5 个答案:

答案 0 :(得分:3)

CategoryModule init方法中发布并注册 - 这将使您的css和js在类别模块中可用。
像这样:

public function  init() {
    $path = $this->assetManager->publish(Yii::getPathOfAlias('application.modules.category.assets'));
    $this->clientScript->registerCssFile($path . '/css/some-css.css', 'screen, projection');
    $this->clientScript->registerScriptFile($path . '/js/some-js.js');
}

答案 1 :(得分:1)

在views / layout下创建模块布局文件,并在模块配置文件中将其命名为

$this->layoutPath = Yii::getPathOfAlias('application.modules.moduleName.views.layouts');
        $this->layout = '/layouts/layoutname';

将所有js和css文件注册为@PeterM提到

答案 2 :(得分:0)

在views文件夹中创建文件夹“layouts”。在该layouts文件夹中创建main.php。

在您的帐户中添加以下代码:

<link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl; ?>/css/style.css" type="text/css" media="screen"/>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/cycle.js"></script>

这是您的默认布局。所以添加,

<?php echo $content; ?>

这是在所有视图中包含css和js的另一种方法。

答案 3 :(得分:-1)

轻松使用此静态方法

<?php Yii::app()->clientScript->registerCssFile(Yii::getPathOfAlias('application.modules.curriculo.assets') . '/bootstrap/datepicker/css/datepicker.css'); ?>
<?php Yii::app()->clientScript->registerScriptFile(Yii::getPathOfAlias('application.modules.curriculo.assets') . '/bootstrap/datepicker/js/bootstrap-datepicker.js'); ?>

答案 4 :(得分:-2)

这可以帮到你:

http://www.yiiframework.com/wiki/249/understanding-the-view-rendering-flow/

详细解释了所有三个部分(beginContent,container和endContent)。