4
votes

I have a project based from Yii Framework. I followed this guide to implement boostrap for my yii project but I'm getting error:

Invalid Bootstrap path and CDN URL not set. Set vendor.twbs.bootstrap.dist alias or cdnUrl parameter in the configuration file. 

Here's the URL http://www.getyiistrap.com/site/started

I followed everything. I didn't use composer. I just downloaded the zip file.

Here's my config file for reference:

<?php

// uncomment the following to define a path alias // Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable // CWebApplication properties can be configured here. return array( 'basePath'=>dirname(FILE).DIRECTORY_SEPARATOR.'..', 'name'=>'My Web Application',

// preloading 'log' component
'preload'=>array('log'),

 // path aliases
'aliases' => array(
    'bootstrap' => realpath(__DIR__ . '/../extensions/bootstrap'), // change this if necessary
),

// autoloading model and component classes
'import'=>array(
    'application.models.*',
    'application.components.*',
            'bootstrap.helpers.*',

),

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

    'gii'=>array(
        'class'=>'system.gii.GiiModule',
        'password'=>'password',
        // If removed, Gii defaults to localhost only. Edit carefully to taste.
        'ipFilters'=>array('127.0.0.1','::1'),
                    'generatorPaths' => array('bootstrap.gii'),
    ),

),

// application components
'components'=>array(

    'user'=>array(
        // enable cookie-based authentication
        'allowAutoLogin'=>true,
    ),


        'bootstrap' => array(
            'class' => 'bootstrap.components.TbApi',   
        ),

    // uncomment the following to enable URLs in path-format

    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),


    // database settings are configured in database.php
    'db'=>require(dirname(__FILE__).'/database.php'),

    'errorHandler'=>array(
        // use 'site/error' action to display errors
        'errorAction'=>'site/error',
    ),

    'log'=>array(
        'class'=>'CLogRouter',
        'routes'=>array(
            array(
                'class'=>'CFileLogRoute',
                'levels'=>'error, warning',
            ),
            // uncomment the following to show log messages on web pages
            /*
            array(
                'class'=>'CWebLogRoute',
            ),
            */
        ),
    ),



),

// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>array(
    // this is used in contact page
    'adminEmail'=>'[email protected]',
),
);

I followed where to put the bootstrap files. I've been searching on the internet but can't find an answer. Thanks

2

2 Answers

0
votes
  1. Add at the start of your config/main.php:

    Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/../extensions/bootstrap');
    
  2. Then in components:

    // application components
    'components' => array(
    ...
        'bootstrap' => array(
            'class' => 'bootstrap.components.Bootstrap'
    ),
    
  3. And remove your code:

     // path aliases
    'aliases' => array(
    'bootstrap' => realpath(__DIR__ . '/../extensions/bootstrap'),
    ),
    
  4. Check if bootstrap is in extensions/bootstrap

That way it should work.

0
votes

I assume that you are using YiiStrap 2.x.x

You could set

// path aliases
'aliases' => array(
    'bootstrap' => realpath(__DIR__ . '/../extensions/bootstrap'),
    'vendor.twbs.bootstrap.dist' => realpath(__DIR__ . '/../extensions/bootstrap'),
),

and error is gone. But I think that YiiStrap 2.x.x is still not stable and buggy so I had to rollback to 1.x.x and waiting to stable release.