Include CSS,javascript file in Yii Framework

前端 未结 18 1715
[愿得一人]
[愿得一人] 2020-11-29 15:46

How to include a Javascript or CSS file in Yii Framework?

I want to create a page on my site that has a little Javascript application running, so I want to include <

相关标签:
18条回答
  • 2020-11-29 16:05

    Something like this:

    <?php  
      $baseUrl = Yii::app()->baseUrl; 
      $cs = Yii::app()->getClientScript();
      $cs->registerScriptFile($baseUrl.'/js/yourscript.js');
      $cs->registerCssFile($baseUrl.'/css/yourcss.css');
    ?>
    
    0 讨论(0)
  • 2020-11-29 16:05

    There are many methods that we can include javascript, css into your Yii App. Today I will demonstrate three simple and helpul methods.

    A simple way to add js, css by editing 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'),
                    )
                ),
            ),
            // ...
      ),
    

    Using getClientScript

    Usually, We add in block of code into Controller or layout of your theme

    $baseUrl = Yii::app()->baseUrl; 
    $cs = Yii::app()->getClientScript();
    $cs->registerScriptFile($baseUrl.'/js/yourscript.js');
    $cs->registerCssFile($baseUrl.'/css/yourcss.css');
    

    Or shorter:

    Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/path/to/your/javascript/file',CClientScript::POS_END);
    Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/path/to/css/file');
    

    Include core js files

    Yii::app()->clientScript->registerCoreScript('jquery');     
    Yii::app()->clientScript->registerCoreScript('jquery.ui');
    

    Faster Yii API Document: http://yii.codexamples.com/

    0 讨论(0)
  • 2020-11-29 16:05

    Using bootstrap extension

    my css file: themes/bootstrap/css/style.css

    my js file: root/js/script.js

    at theme/bootstrap/views/layouts/main.php

    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->theme->baseUrl; ?>/css/styles.css" />
    
    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/script.js"></script>
    
    0 讨论(0)
  • 2020-11-29 16:07

    In the view, add the following:

    <?php  
      $cs = Yii::app()->getClientScript();
      $cs->registerScriptFile('/js/yourscript.js', CClientScript::POS_END);
      $cs->registerCssFile('/css/yourcss.css');
    ?>
    

    Please notice the second parameter when you register the js file, it's the position of your script, when you set it CClientScript::POS_END, you let the HTML renders before the javascript is loaded.

    0 讨论(0)
  • 2020-11-29 16:12
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <script src="/news/js/popup.js"></script>
    

    link must input over the first php tag in the view pag

    0 讨论(0)
  • 2020-11-29 16:13

    Also, if you want to add module assets both CSS and JS, you can use the following logic. See how you need to indicate the correct path to getPathOfAlias:

    public static function register($file)
    {
        $url = Yii::app()->getAssetManager()->publish(
        Yii::getPathOfAlias('application.modules.shop.assets.css'));
    
        $path = $url . '/' . $file;
        if(strpos($file, 'js') !== false)
            return Yii::app()->clientScript->registerScriptFile($path);
        else if(strpos($file, 'css') !== false)
            return Yii::app()->clientScript->registerCssFile($path);
    
        return $path;
    }
    

    The above code has been taken from GPLed Yii based Webshop app.

    0 讨论(0)
提交回复
热议问题