4

考虑以下目录结构:

  • ------图片
  • ......标志.png
  • ------包括
  • ...... vars.php
  • ------布局
  • ................内容.php
  • ------ index.php

如何在vars.php中为logo.png定义一个在index.phpcontent.php中都可以访问的路径常量?应该与 HTML 标签兼容作为相对路径。

<img src="<?php echo IMAGE_PATH; ?>">

应该被解析为

<img src="images/logo.png"> <!-- if used in index.php -->

<img src="../images/logo.png"> <!-- if used in content.php -->

新问题(编辑):使用include / require方法包含 php 文件时,根相对路径是否有效?

4

6 回答 6

5

尝试在代码部分中设置<base>标签<head>

您所有的图像、css 和 js 文件都将使用它而不是地址栏中的 url。

基地信息

于 2009-09-04T00:02:41.587 回答
3

绝对 url 或根路径会给你带来最少的麻烦。相信我,当系统发展壮大时,你会后悔那个设置。

这是引用事物的完全合法的方式。(正如你在评论中问的那样)

如果您担心域之间的设置,只需创建一个配置变量,其中包含域 / 目录 / 等的绝对路径

于 2009-09-03T23:54:08.597 回答
3

您可以使用“根相对”路径。只需在开头使用正斜杠链接到所有内容,即

<img src="/images/logo.png">

这将解析到http://yoursite.com/images/logo.pngyoursite.com 上的每个页面。

于 2009-09-03T23:55:41.823 回答
1

只需将所有路径指定为相对于根

<img src="/images/logo.png"> <!-- will work anywhere  -->
于 2009-09-03T23:57:06.453 回答
0

我主要建议您使用根相对路径。这只是为了减少将您的站点移动到另一台主机的复杂性,并且它还允许一致的路径(而不是使用if()条件来测试脚本运行的位置)。

但否则,你的建议会很好。

于 2009-09-03T23:55:14.960 回答
0

我会使用类似应用程序基础 URL 的东西:

define('APP_URL', 'http://example.com/path/to/app');
echo '<img src="'.APP_URL.IMAGE_PATH.'">';

或者为了更方便,编写一个将相对 URL 解析为绝对 URL 的函数。

于 2009-09-04T12:52:53.420 回答