仅在一个文件中包含一个公共文件失败 Codeigniter

include a common file fails inside only one file Codeigniter

我包括 "navigation.php",它在我的所有视图中都有通用菜单。

<div id="navigation">
    <? include("navigation.php"); ?>
</div>

此代码适用于所有其他文件,但在一个文件中出错。

Severity: Warning
Message: include(navigation.php): failed to open stream: No such file or directory
Filename: views/readsinvo_index.php
Line Number: 2


Severity: Warning
Message: include(): Failed opening 'navigation.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php')
Filename: views/readsinvo_index.php
Line Number: 2

在"readsinvo_index.php"中与其他文件相同

<div id="navigation">
    <? include("navigation.php"); ?>
</div>

并且两个文件都在 "views" 中。两个文件都有权限 777 .

但是当我尝试使用

<? include(dirname(__FILE__)."/navigation.php"); ?>

它完美运行,但在所有其他页面中,它在使用时正常运行

<? include("navigation.php"); ?>

是否有任何可能的原因导致我通常无法仅在此文件中包含该文件。我正在使用 codeigniter 框架和 CentOS。

CodeIgniter 从单个入口脚本文件运行 index.php

因此,当您说当前目录时,它是index.php目录的路径。

如果你包含一些文件,它会首先搜索给定目录中存在的任何文件,然后在包含路径中。

语句<? include(dirname(__FILE__)."/navigation.php"); ?>

dirname 给你 index.php 的路径。

当您在视图中添加语句:<? include("/navigation.php"); ?> 时,它将搜索视图目录,因此会出现错误。

您可以使用APPPATH

APPPATH.'views/navigation.php'

并且

可能重复