在我的 php 脚本中,我创建了一个常量变量来定义要放入我的超链接中的基本 url,但我真的需要这个吗?
这是我的意思的一个例子。
我有这个:
// base url is only defined once and reused throughout
define("__BASE_URL","http://localhost/test1/");
print '<a href="'.__BASE_URL.'index.php?var1=open/>Open</a>';
(我的脚本中散布了很多这样的内容。)
我试过了,效果很好:
print '<a href="index.php?var1=open/>Open</a>';
那么哪种方式才是正确的做法呢?我注意到第二种方式甚至适用于加载图像、css 和 javascript 文件。
最佳答案
这实际上取决于您如何构建网站。相对 URL 很棒(通过执行 href="index.php"
你真的在说 href="./index.php"
),但它们可以开始成为当您开始将页面分散到多个目录时会很困惑。
就我个人而言,我喜欢将我所有的相对 URL 基于根目录,这意味着我的所有 URL 都以斜杠 ('/') 开头。这样一来,无论我的脚本位于/还是/admin 中都没有关系,因为我将始终有一个恒定的引用点 - 文档根目录 - 而不是结构中的某个相对目录。
您的第一个示例,将文档路径存储在变量中,当您开始开发您希望路径可配置的大型系统时,它真正开始派上用场。例如,您可能希望您的系统管理员能够定义从何处提取图像或缓存下载的位置。
因此,请真正考虑您的用例和系统的大小。
另请记住,如果您将脚本移动到另一台服务器,您的 URL 和目录结构可能会发生变化,这可能会造成严重破坏(例如,您可能将脚本移动到不同的子域,进入文档根目录, ETC。)。在这种情况下,很多人会放弃 Apache 的 mod_rewrite。
关于php - 超链接起始斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249708/