Codeigniter:包含在视图中时未在标题中找到的文件

时间:2014-08-26 19:00:37

标签: php html codeigniter

我的管理控制器中有一个名为“login”的函数,它使用application / views / admin /中的“login.php”视图。我在此文件的顶部和底部包含'header.php'和'footer.php'视图,如下所示:

 <?php include ('/application/views/layout/header.php'); ?>

页眉和页脚在我的所有其他视图中都正确包含,但是当包含在“login.php”视图中时,找不到资产文件。这是我的'header.php'视图:

 <!DOCTYPE html>
    <html>
    <head>
        <link rel="stylesheet" type="text/css" href="./application/assets/bootstrap/css/bootstrap.min.css" >
        <link rel="stylesheet" type="text/css" href="./application/assets/style.css" >
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script src="./application/assets/bootstrap/js/bootstrap.min.js" ></script>
        <title><?php echo $page_title; ?></title>
    </head>
    <body>
        <div class="container-fluid text-center">
            <div class="row">
                <div class="span12">
                    <img src="./application/assets/signature.jpg" class="img-responsive center-block" style="margin-top: 20px;">  
                </div>
            </div>
        </div>

以下是我的应用程序的文件结构:

application

-+assets    
---+css    
------style.css 

-+controllers    
----admin.php    
----page.php  

-+views    
---+layout    
------header.php    
------footer.php    
---+admin    
------home.php    
------login.php    
----home.php

我用firebug尝试解决问题,控制台给我一个404错误。它将控制器名称'Admin'添加到css文件的文件路径中,原因如下所示,以及我的.js文件和图像:

/ MY_PROJECT /管理/应用/资产

关于为什么会这样做的任何想法?我在.htaccess文件中的项目上使用了mod_rewrite。

2 个答案:

答案 0 :(得分:1)

对于包含页眉和页脚,我认为这个答案更好: adding header and footer codeigniter to controller ... 并且为了引用CSS和JS文件使用CodeIgniter URL帮助器。您必须加载帮助程序并使用此帮助程序: https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html。 在config.php文件中配置base_url()。然后链接到您的CSS和JS,就像这个答案: Code Igniter simple base url css

答案 1 :(得分:1)

如果您使用Codeigniter框架,我建议使用标准函数加载视图,而不是 include()函数。

例如,Codeigniter支持函数查看()以在网页上加载HTML代码。

调用函数如:

$this->load->view(template);

在您的情况下,您需要将下一个代码放在您希望加载标题模板的控制器文件login.php中。看起来像:

$this->load->view("layout/header.php");

另外,不要使用incude();写得更好:include_once(); 如果您将继续使用继承类,则会遇到问题。 阅读更多相关信息:enter link description here