【发布时间】:2020-12-20 23:06:37
【问题描述】:
当出现 404 Page Not Found 错误时 application/errors/error_404.php 在 CodeIgniter 中使用模板。我需要访问该模板中的base_url() 函数。关于如何在error_404.php 中访问base_url() 或site_url() 函数的任何建议将非常有帮助。
【问题讨论】:
标签: codeigniter error-handling
当出现 404 Page Not Found 错误时 application/errors/error_404.php 在 CodeIgniter 中使用模板。我需要访问该模板中的base_url() 函数。关于如何在error_404.php 中访问base_url() 或site_url() 函数的任何建议将非常有帮助。
【问题讨论】:
标签: codeigniter error-handling
您可能想使用这个简单的技巧。只需更改以下代码:
<?php echo base_url() ?>
到:
<?php echo config_item(‘base_url’); ?>
感谢https://www.petanikode.com/codeigniter-base-url-404/ 这适用于我的情况
【讨论】:
尝试关注application/errors/error_404.php
$CI =& get_instance();
if( ! isset($CI))
{
$CI = new CI_Controller();
}
$CI->load->helper('url');
echo $CI->base_url();
【讨论】:
在 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 文件夹下的所有页面
【讨论】:
您可以直接使用这些函数,因为它们是全局函数。
例如:你在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'); ?>
【讨论】:
编辑你的 /application/config/routes.php
$route['404_override'] = 'your_controller/error';
在 your_controller.php 中添加函数
function error(){
show_404();
}
你准备好了。
【讨论】:
请参考https://stackoverflow.com/a/48033542/7840849
或执行以下操作
$autoload['helper'] = array('url');在 application\config\autoload.php 文件中
然后简单地使用 echo config_item('base_url');而不是 echo base_url();在 codeigniter 默认错误页面
【讨论】:
$autoload['helper'] = array('url');在 application\config\autoload.php 文件中
然后简单地使用 echo config_item('base_url');而不是 echo base_url();在 codeigniter 默认错误页面
【讨论】:
这适用于我的情况,试试这个方法
将函数base_url()改为config_item('base_url')
<?php echo config_item('base_url'); ?>
【讨论】:
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" />
【讨论】: