PHP:定义与HTML标记兼容的相对路径

PHP:定义与HTML标记兼容的相对路径,php,html,parsing,relative-path,Php,Html,Parsing,Relative Path,考虑以下目录结构: 根 ------图像 。。。。。。。。。。。。。。。logo.png ------包括 。。。。。。。。。。。。。。。vars.php ------布局 。。。。。。。。。。。。。。。content.php ------index.php 如何在vars.php中为logo.png定义一个路径常量,该常量可在index.php和content.php中访问?应与HTML标记作为相对路径兼容 <img src="<?php echo IMAGE_PATH; ?&

考虑以下目录结构:

  • ------图像
  • 。。。。。。。。。。。。。。。logo.png
  • ------包括
  • 。。。。。。。。。。。。。。。vars.php
  • ------布局
  • 。。。。。。。。。。。。。。。content.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 -->



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

绝对url或根路径将为您提供最少的头面。相信我,当系统增长时,您会后悔这种设置

这是一种完全合法的参考方式。(正如你在评论中所问)


如果您担心域之间的设置,只需创建一个配置变量,其中包含域/目录/etc的绝对路径。我主要建议您使用根相对路径。这只是为了减少将站点移动到另一台主机的复杂性,并且允许一致的路径(而不是使用
If()
测试脚本运行位置的条件)

否则,您的建议就可以了。

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

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


这将解析为
http://yoursite.com/images/logo.png
从yoursite.com上的每个页面。

只需指定相对于根的所有路径即可

<img src="/images/logo.png"> <!-- will work anywhere  -->

尝试在代码的
部分设置
标记

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


我会使用类似于应用程序基础URL的内容:

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


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

您应该使用绝对路径。为什么不能是静态的?为什么不能始终提供绝对路径?但我得到的是目录路径(如c:\Hosting\j349j\html\images\logo.png)这对php很好,但在html标记中失败。此外,绝对web路径,如…我认为这不是包含图像/样式表的推荐方式。@gAMBOOKa对于图像,您应该提供完整的URL路径,而不是文件系统路径。然后它将在php和html img标记或css中工作。只需将/images/logo.png放在其中所有页面。它会起作用。你为什么喜欢
绝对路径
,而不是
根相对路径
,路径?域之间的设置不是问题。但是不使用HTML标记(图像/样式表)的绝对路径是否会带来性能损失?我相信是的,这也是我更喜欢根相对路径的原因之一。在任何地方使用绝对路径都会增加页面的权重(以及css)。简单地说,'比'/'长。我通常谈论的是这个概念。并且称为'根相对'路径(无论如何,据我所知).=)@ricebowl:不,这是一个绝对路径。我如何获得根相对路径?NVM,DisglustedCoat回答了它!url就像
images/blah.png
,没有前导的
/
。我喜欢你的想法,但在某些情况下,涉及模块化组件时,路径可能需要相对于模块目录,而不是n根目录。@gAMBooka,你说得对,但这些情况可能不太常见,可以硬编码。但是,这是一个绝对url,会带来dns查找惩罚,我想避免。废话!我现在完全糊涂了!请注意,更改基url将影响任何相对url,而不仅仅是具有相对url路径的相对url。
define('APP_URL', 'http://example.com/path/to/app');
echo '<img src="'.APP_URL.IMAGE_PATH.'">';