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