base_url()函数在codeigniter中不起作用

时间:2011-06-23 04:36:54

标签: php codeigniter

我正在使用codeigniter开发我们的应用程序。我试图使用base_url()函数,但它显示空结果。我通过自动加载文件使用了autoload helper,但是它似乎也没有用。我也定义了基本常量,但都是徒劳的。请帮忙。

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title><?php echo $title; ?></title>        
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="stylesheet" href="<?php echo base_url();?>/css/template/default.css" type="text/css" />
        <script type="text/javascript">
            //<![CDATA[
            base_url = '<?= base_url();?>';
            //]]>
        </script>
    </head>

12 个答案:

答案 0 :(得分:141)

要使用base_url(),您必须先加载URL Helper。这可以在application/config/autoload.php(第67行或第67行)之前完成:

$autoload['helper'] = array('url');

或者,手动:

$this->load->helper('url');

加载后,请务必记住base_url()不会隐式打印或回显任何内容,而是返回要打印的值:

echo base_url();

还要记住,返回的值是配置文件中提供的站点的基本URL。 CodeIgniter也将在配置文件中容纳一个空值:

  

如果未设置此(base_url),则CodeIgniter将猜测安装的协议,域和路径。

     

application / config / config.php,第13行

答案 1 :(得分:5)

如果你想使用base_url(),那么我们需要加载url helper。

  1. 使用自动加载$autoload['helper'] = array('url');
  2. 或者手动加载控制器或查看$this->load->helper('url');
  3. 然后您可以在控制器或视图中的任何位置使用base_url()

答案 2 :(得分:3)

我认为您尚未编辑codeigniter文件以启用 base_url()。你尝试在url_helper.php中分配它,你也可以做同样的config / autoload.php文件。您可以在autoload.php中添加此代码

$autoload['helper'] = array('url');

你可以像这样使用base_url()

<link rel="stylesheet" href="<?php echo base_url();?>/css/template/default.css" type="text/css" />

答案 3 :(得分:2)

检查配置文件/application/config/config.php中是否配置了某些内容,例如

$config['base_url'] = 'http://example.com/';

答案 4 :(得分:2)

首先加载URL帮助器。您可以加载“config / autoload.php”文件并添加以下代码 $autoload['helper'] = array('url');

或在控制器中添加以下代码

$this->load->helper('url');

然后转到cofig文件夹中的config.php并设置

$config['base_url'] = 'http://urlbaseurl.com/';
希望这会有所帮助 感谢

答案 5 :(得分:1)

首先,您必须将url帮助文件加载到项目中

$this->load->helper('url');

然后你会得到

的base_url
echo base_url();

Read more about base_url here

答案 6 :(得分:0)

如果您不想使用网址助手,可以使用以下变量获得相同的结果:

$this->config->config['base_url']

它将为您返回基本网址,无需额外步骤。

答案 7 :(得分:0)

在控制器中加载url帮助器

$ this-> load-> helper('url');

答案 8 :(得分:0)

任何直接在Codeigniter框架中使用的东西,例如base_url()uri_string()word_limiter(),所有这些都来自某种Helper函数框架。

尽管Helpers中的某些log_message()可以像base_url()一样在全球范围内使用,而在任何地方都非常有用,但其余的Helpers是可选的,并且使用情况因应用程序而异。 url是在框架的base_url()助手中定义的功能。

您可以在Codeigniter user guide's helper section.

中了解有关辅助程序的更多信息

当您的当前类访问了$this->load->helper('url') 函数之后,您可以使用它,而您需要先对其进行加载。

base_url()

在使用config/autoload.php函数之前,可以在应用程序中的任何位置使用此行。

如果您需要经常使用它,我建议在autoload helpers部分的base_url中添加此功能。

此外,请确保您在config/config.php文件中定义了明确的$config['base_url'] = 'http://yourdomain.com/'; 值。

这是您将看到的第一个配置,

echo base_url();

您可以通过以下方式快速检查

EventListener

参考:https://codeigniter.com/user_guide/helpers/url_helper.html

答案 9 :(得分:0)

问题-我想加载我的css文件,但是即使我自动加载并手动运行,它也不起作用,为什么?我找到了解决方案=> 这是我的解决方案: 应用程序>配置> config.php $ config ['base_url'] ='http://localhost/CodeIgniter/'; //将链接粘贴到基本网址

问题说明:

”> 我将我的bootstrap.min.css文件放在assets / css文件夹中,其中Assets是我创建的根目录。但是即使加载时它也无法正常工作? 1. $ autoload ['helper'] = array('url'); 2. $ this-> load-> helper('url');然后进入我的

答案 10 :(得分:0)

我花了几个小时遇到这个问题,但是以不同的方式解决了这个问题。可以看到,我刚刚在应用程序文件夹之外创建了一个Assets文件夹。最后,我将样式表链接到页面标题部分。文件夹结构在图像下方。

enter image description here enter image description here

在执行此操作之前,您应该在控制器类方法/ __ constructor文件中或在 autoload.php 文件中包含 url 帮助文件。还要在以下文件 application / config / config.php

中更改$config['base_url'] = 'http://yoursiteurl';

如果将其包含在控制器类method / __ constructor中,则它看起来像

public function __construct()
{
    $this->load->helper('url');
}

或如果您加载自动加载文件,则看起来像

$autoload['helper'] = array('url'); 

最后,添加样式表文件。 您可以通过不同的方式链接样式表,将其包含在内部部分

-> <link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css" type="text/css" />

->或

<?php

    $main = array(
    'href'       => 'assets/css/style.css',
    'rel'        => 'stylesheet',
    'type'       => 'text/css',
    'title'      => 'main stylesheet',
    'media'      => 'all',
    'index_page' => true
    );


echo link_tag($main); ?>

->或

最终,我得到了更可靠的代码清理器概念。只需在您的 application / config / styles.php 文件夹中创建一个名为 styles.php 的配置文件。 然后在如下所示的 styles.php 文件中添加一些链接

<?php
 $config['style'] = array(
    'main' => array(
        'href'       => 'assets/css/style.css',
        'rel'        => 'stylesheet',
        'type'       => 'text/css',
        'title'      => 'main stylesheet',
        'media'      => 'all',
        'index_page' => true
    )
 );

?>

调用/将此配置添加到控制器类方法如下

$this->config->load('styles');
$data['style'] = $this->config->config['style'];

在标题模板中传递此数据如下所示。

$this->load->view('templates/header', $data);

最后添加或链接您的css文件,如下所示。

<?php echo link_tag($style['main']); ?>

答案 11 :(得分:0)

除了确保你已经设置了 config/autoload.php:

$autoload['helper'] = array('url');

从以下位置更改 application/config/config.php:

$config['base_url'] = 'http://example.com/';

成为动态基本网址:

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https": "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

并且使用来自 php 的主机在本地运行它,下面只是一个示例端口。

php -S localhost:2000