2013-08-06 124 views
0

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

例如

$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/'; 

我不得不重复基础URL 4个times.Is $config['base_url']变量可用于config.php文件里使用?

回答

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()也不需要任何更改。

+0

negetive point ??? !!!指定原因plz ...因为在这种格式下,我已经完成了近10个codeigniter项目... – ripa

+0

谁做出了负面评论plz,否则我会问的主持人stackoverflow ... – ripa

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

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

+0

任何想法为什么这个'$ config ['media_player_js'] \t = $ config ['base_url'] .'assets/custom.js';''''echo $ this-> config-> item('media_player_js' ); '工作?顺便说一下你的解决方案不起作用。 –

+1

任何想法为什么它不应该? –

+0

我估计现在开始使用'$ config ['base_url']'变量还为时过早;) –

0

我很惊讶这个工作

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

,并在像你的配置文件使用它

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

请发表评论。 –