CodeIgniter访问error_404.php中的base_url()

时间:2016-03-10 09:26:53

标签: codeigniter error-handling

当发现404 Page Not Found错误时,CodeIgniter中使用了application/errors/error_404.php模板。我需要访问该模板中的base_url()函数。关于如何在base_url()中访问site_url()error_404.php函数的任何建议都会非常有用。

9 个答案:

答案 0 :(得分:6)

application/errors/error_404.php

中尝试关注
$CI =& get_instance();
if( ! isset($CI))
{
    $CI = new CI_Controller();
}
$CI->load->helper('url');
echo $CI->base_url();

答案 1 :(得分:4)

在404页面中尝试此操作:

$CI =& get_instance();
if( ! isset($CI))
{
    $CI = new CI_Controller();
}
$CI->load->helper('url');
echo base_url();

// below here base_url(), site_url() will work

适用于 views / errors / html 文件夹

下的所有页面

答案 2 :(得分:4)

您可能想要使用这个简单的技巧。只需更改以下代码:

<?php echo base_url() ?>

为:

<?php echo config_item(‘base_url’); ?>

https://www.petanikode.com/codeigniter-base-url-404/的功劳 这项工作适用于我的案例

答案 3 :(得分:1)

参考https://stackoverflow.com/a/48033542/7840849 或者做以下事项 $ autoload ['helper'] = array('url');在 application \ config \ autoload.php 文件

然后只需使用echo config_item('base_url');而不是echo base_url();在 codeigniter默认错误页面

答案 4 :(得分:0)

您可以直接使用这些功能,因为这些是全局功能。 例如:你在404 page template

<html> 
<head>
  <title> 404 Error </title>
</head>
<body>
  <?php echo base_url('/your path'); ?>
  <?php echo site_url('/your path'); ?>
</body>
</html>

<强>被修改

转到您的application/config/autoload.php文件并在自动加载阵列中添加url

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

之后,您可以直接使用<?php echo base_url('/your path'); ?>无处不在

答案 5 :(得分:0)

编辑/application/config/routes.php

$route['404_override'] = 'your_controller/error';

将功能添加到your_controller.php

function error(){
    show_404();   
}

你准备好了。

答案 6 :(得分:0)

$ autoload [&#39; helper&#39;] =数组(&#39; url&#39;);在 application \ config \ autoload.php 文件

然后只需使用echo config_item(&#39; base_url&#39;);而不是echo base_url();在 codeigniter默认错误页面

答案 7 :(得分:0)

这对我的情况有效,试试这个方法

将函数 base_url() 改为 config_item('base_url')

    <?php echo config_item('base_url'); ?>

答案 8 :(得分:-1)

In order to use base_url(), you must first have the URL Helper loaded. This can be done either in application/config/autoload.php

$autoload['helper'] = array('url');
Or, manually:

$this->load->helper('url');
Once it's loaded, be sure to keep in mind that base_url() doesn't implicitly print or echo out anything, rather it returns the value to be printed:

echo base_url();

Check if you have something configured inside the config file /application/config/config.php e.g.
$config['base_url'] = 'http://example.com/';

**Then** 
u can use like this..
<link rel="stylesheet" href="<?php echo base_url();?>/css/template/default.css" type="text/css" />