我可以在链接中使用魔术常量__DIR__吗?

时间:2016-06-16 11:47:17

标签: php hyperlink include

所以,我对链接中的路径有疑问。这就是问题所在:在我的作业中,我的所有链接都被破坏了(不是全部,只有一半不能正常工作)。

html_start.php包含nav.php,start_html包含在/admin/index.php中,依此类推。

public_html
    html_start
    nav
styles.css 
admin
    index.php
user
    index.php
index.php

首先我尝试使用绝对路径,例如。 a href =" /user/index.php"但助手警告我,它导致我大学的主页而不是我的index.php。 如果我使用相对链接,他们中的一半会对包含进行操作。

可悲的是,所有这些都在我的环境中工作,但是当它上传到我的学校时却没有,所以在我上传作业之前我不知道它会如何表现,我只有一次尝试来纠正它。

现在,我几乎在每一页都使用include - 例如。 include( __DIR__.'/app.cfg.php')这显然有效。 所以我的问题是我可以用链接做同样的事情吗?我在某个地方读到过它没有做同样的事情。

1 个答案:

答案 0 :(得分:0)

看起来你在“root”(localhost?)工作,绝对链接很好,但是当你的学校服务器上设置了网站时,绝对链接指向学校的域而不是你所在的子目录项目是。

您需要将<base>标记与相对链接结合使用。请注意,它可能会弄乱您的css / js / images,因此您需要将所有路径更新为相对路径(不是以/开头)。这是一个例子:

<html>
  <head>
    <base href="http://example.com/"/>
[...]
<a href="dir/page.html">link</a>

上面的链接指向http://example.com/dir/page.html。基本上,在base标记中设置网址会设置您网站的“根”,所有相关链接都会尊重它。您可以将base的值存储在您站点的配置中并在模板中回显它,因此当您的站点在另一台服务器上设置时,您将更新配置文件并且所有链接/ images / css / etc都可以正常工作