【问题标题】:cannot directly call the php file inside folders using the directory path不能使用目录路径直接调用文件夹内的php文件
【发布时间】:2013-10-21 04:26:00
【问题描述】:

我有一个名为 GASS 的根文件夹,我将所有的 php 文件和其他相关文件夹(模板、图像、js、字体、css)放在里面。当我尝试在 localhost 中运行我的项目时,http://localhost/GASS/alarm_A16GSM.php 一切都很顺利。我想将 URL 更改为更具体,http://localhost/GASS/alarmsystem/16zone/A16/overview.php 因此我重命名了 php 文件并将其放入文件夹中。

  • 气体
    • 报警系统
      • 16区
        • A16
          • 概述

但是,当我尝试运行新 URL 时,页面显示错误。这是错误消息:

Warning: include(templates/header.php): failed to open stream: No such file or directory in .....

页面加载成功的第一个 URL 的代码。

 <div class="overview"><a href="alarm_A16GSM.php" id="overview-selected"><span>

页面显示错误的新 URL 的代码。

<a href="alarm-system/16-zone/A16/overview.php" id="overview-selected">

看来我需要配置一些我不知道的东西。

如何使用新 URL 成功加载页面?我将如何遍历四个级别直到根目录才能成功加载页面?为什么我不能使用(alarm-system/16-zone/A16/overview.php)路径直接调用php文件?

p/s:对不起,我的英语不好。

【问题讨论】:

  • 顺便说一下,你应该看看“路由”。这是一种使您的 URL 独立于您的目录和文件结构的方法。

标签: php css url directory


【解决方案1】:

你的php文件里好像有一行,大概是这样的

include 'templates/header.php';

Include 找不到使用该相对路径的文件,因为您移动了调用文件。

也许你可以把它改成

include '../../../../templates/header.php';

回到 GASS 文件夹,该文件夹显然有一个名为“templates”的文件夹,其中包含一个必需的文件“header.php”。

绝对路径会很好,但它指的是文件系统路径,而不是网络服务器路径 - 因此您需要知道服务器上的网络根文件夹名称。

【讨论】:

  • 我明白了!多谢!只是我只达到了模板 3 级。所以我认为答案应该是 include'../../../templates/header.php'
  • 酷,很高兴它成功了!我还认为更好的解决方案可能是使用命令将基本目录添加到您的 PHP 包含路径。如果有帮助,我会更新一些代码。
  • 如何调用根文件夹中的css? URL 工作正常,但页面只显示单词和描述。没有任何CSS样式。我该如何解决这个问题?
  • 你需要对嵌入外部 CSS 文件的 标签做同样的事情,我想
  • 我把这个代码链接 href="../../../css/gass_style.css" rel="stylesheet" type="text/css" />放在overview.php里面文件。页面加载成功。然而图像不见了。为什么会这样?
【解决方案2】:

将所有文件夹(模板、图像、js、字体、css)复制到文件夹概览将解决此问题。现在文件夹 'overview' 上没有模板文件,所以 header.php 无法加载。另一种选择是创建一个文件保存所有包含的文件路径并调用此文件。

【讨论】:

  • 谢谢。它有效:-) 我可以使用任何其他解决方案吗?除了复制所有文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2023-04-05
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
相关资源
最近更新 更多