【问题标题】:PHP - Relative path to folder?PHP - 文件夹的相对路径?
【发布时间】:2017-01-01 00:55:14
【问题描述】:

我正在为我正在进行的项目使用 MVC codeigniter。它在localhost 上运行,只需找到并定义了base_url='http://localhost/app/

在本地机器上运行时,一切正常,图像等的路径如下:<link rel="stylesheet" href="http://localhost/app/assets/css/bootstrap.min.css">

我面临的问题是当我在手机上使用 VPN 来查看网站时。在我的本地网络上,我输入服务器的 IP 地址来加载网站。这会导致图像/css 等仍然尝试从 http://localhost 加载,因此不会加载它们。

有没有我可以使用的 PHP 变量来获取文件所在文件夹的路径? IE。 ../../assets/bootstrap.min.css?

我尝试使用 $_SERVER["DOCUMENT_ROOT"] 之类的东西,但这给了我完整的路径 /var/www/html/app/assets/css/,当我尝试从另一个来源(例如我的 VPN)加载它时,它再次无效。

我该如何解决这个问题?这是路径问题还是我需要查看的服务器的问题?

【问题讨论】:

  • 在开发服务器上设置本地域。然后在两台服务器和访问服务器的机器上设置主机文件,依此类推。此外,没有理由使用完整的网址。只需使用 /app/assets... 等等。基本上 / 表示 Web 服务器的根目录,一切都基于此。这基本上是开发服务器 101

标签: php codeigniter relative-path


【解决方案1】:

当您想在网站内收集文件时,您不需要指定 url。

因此,如果您有一个域,无论是 localhost 还是 fqdn,都没有关系,并使网站“可移植”

你的links/images/script uri都可以相对调用。

<a href="relative/path/to/file.html">
<img src="path/to/image.jpg">
<link rel="stylesheet" href="path/to/file.css">
<script src="path/to/file.css">

这样做将克服可移植性问题,您将在 php 中执行相同操作,其中一些函数需要绝对路径,并且这些函数已记录在案,但如果您需要相邻目录中的文件,许多函数允许您使用相对路径../path/to/file 等

定义路径常量。

define('ROOTPATH', '/path/to/webroot');

从这里我可以在需要的地方将我的常量与相对路径结合起来:

ROOTPATH . '/path/to/file'

【讨论】:

  • 对此我要说的唯一警告是使用相对于根的 URL;只需将relative/path/to/file.jpg 更改为/relative/path/to/file.jpg(前面带有/)。
  • 我遇到的问题是由于控制器 URL 而不是,它占了这些。例如,如果我的索引页面正在加载../assets/file.css,但我现在访问控制器/admin/user/123../ 将路径放入用户目录。
  • 是的 root relative(绝对路径)在程序中会更好我发现在配置文件中定义路径常量对可移植性很有用,您只需在整个应用程序中使用该常量,这样如果您真的无法避免改变路径,那么你至少只需要改变一行代码。
  • @willoller 当您更改主机并且完整路径更改时会发生什么?!?!?!?重新编码?!?!??!
  • @Chris 是的;我正在讨论与根相关的 HTML 路径,而不是 PHP 路径。抱歉,如果不清楚。
【解决方案2】:

我也遇到了同样的问题。视图和html之间的斜线似乎有问题。而不是反斜杠,它包含正斜杠。解决方法:转到 index.php 并通过根据环境将 -1 定义为 0 来停止错误记录。

暂时解决方案/解决方法: 如果(定义('环境')) { 开关(环境) { 案例“发展”: error_reporting(0);

错误信息: 警告:包括(D:\xampp\htdocs\IPT\application\views/errors\html\error_php.php)

【讨论】:

    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2014-09-05
    相关资源
    最近更新 更多