我想拥有漂亮好看的错误页面。为此,我需要获得一些CSS和JS文件。但是由于某些奇怪的原因,使用base_url()
对error_pages不起作用。我当然可以使用href="/css/style.css"
并告诉它从根文件夹中获取它。但是网站很可能放在与根文件夹不同的文件夹中。因此,使用/
不是一种选择。
所以现在我的问题是为什么没有base_url()
在错误页面上工作?我已经自动加载它所以不应该工作吗?
这是我在尝试从视图中的error_404页面获取base_url()时尝试过的。
在我的autoload.php中,我已经包含了帮助url
$autoload['helper'] = array('url', 'form');
在我的error_404页面(application / views / errors / html / error_404.php)中,我像这样回应base_url:
<?php echo base_url(); ?>
这是我得到的错误:
An uncaught Exception was encountered
Type: Error
Message: Call to undefined function base_url()
Filename: /usr/local/www/example.com/application/views/errors/html/error_404.php
Line Number: 37
Backtrace:
File: /usr/local/www/example.com/index.php
Line: 315
Function: require_once
我不想在system
文件夹中进行任何更改,因为每次更新Codeigniter文件夹时我都不想重做该过程。
系统:
Codeigniter 3.0.6
PHP 7.0.8
Nginx 1.11.1
更新 我想在每个错误页面上调用base_url(db,404,general,php等)。
答案 0 :(得分:5)
自动加载器不起作用,因为自动装带器在 完成错误检查后加载库 。如果出现404 not found
之类的错误,则会在不加载自动加载器的情况下查看自定义错误页面。
要在自定义页面上获取base_url,您需要在自定义错误页面中添加以下内容:
$base_url = load_class('Config')->config['base_url'];
取自: http://forum.codeigniter.com/thread-65968-post-335822.html#pid335822
答案 1 :(得分:1)
您必须加载帮助程序类才能获取访问URL函数。所以,先尝试一下:
$this->load->helper('url');
然后你可以使用
回应它echo base_url();
或者,您可以使用
获得相同的结果$this->config->config['base_url'];
答案 2 :(得分:0)