避免在config.php中重复base_url

时间:2013-08-06 12:23:34

标签: php codeigniter

我在codeigniter中的config.php文件中编写自定义配置,但从开发到生产,有很多工作重命名我的自定义配置以反映新域。

例如

$config['base_url'] = 'http://localhost/_init/';

$config['media_player_js']  = 'http://localhost/assets/';

$config['media_player_css'] = 'http://localhost/_init/';

$config['videos']   = 'http://localhost/_init/';

$config['audios']   = 'http://localhost/_init/';

我不得不重复四次基本网址。$config['base_url']文件中是否可以使用config.php变量?

3 个答案:

答案 0 :(得分:3)

为什么要在配置文件中定义base_url()? base_url应包含基本路径。我给出了我在项目中使用的示例: -

在您的配置文件中定义base_url,如下所示: -

$root = "http://".$_SERVER['HTTP_HOST'];
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url']    = "$root";  

然后假设您要访问assets文件夹。所以你只需要写base_url()."assets/"。像这样你可以从项目的任何地方访问你的任何文件夹。

注意: - 对于生产服务器,base_url()也不需要任何更改。

答案 1 :(得分:0)

$config['base_url'] = '/_init/';
$config['media_player_js']  = '/assets/';
$config['media_player_css'] = '/_init/';
$config['videos']   = '/_init/';
$config['audios']   = '/_init/';

允许您在任何域上使用相同的配置。

答案 2 :(得分:0)

我很惊讶这个作品

$config['media_player_js'] = $config['base_url'] .'assets/media_player.js';

并使用它

echo $this->config->item('media_player_js');