Php 如何使用;相对的;网址?

Php 如何使用;相对的;网址?,php,html,Php,Html,我有一个疑问,在HTML文件中,我有以下结构: MAIN -> index.php -> IMAGES -> image.jpg 在“img”标记中,我应该使用以下内容: <img src="IMAGES/image.jpg"> 还是这个 <img src="/IMAGES/image.jpg"> 请注意,在第二个示例中,我在图像之前添加了斜杠。这是我的问题。两者都应该有效,但我建议使用斜杠。当您在

我有一个疑问,在HTML文件中,我有以下结构:

    MAIN -> index.php
         -> IMAGES -> image.jpg
在“img”标记中,我应该使用以下内容:

    <img src="IMAGES/image.jpg">

还是这个

    <img src="/IMAGES/image.jpg">


请注意,在第二个示例中,我在图像之前添加了斜杠。这是我的问题。

两者都应该有效,但我建议使用斜杠。当您在前面添加斜杠时,它意味着查看最上面的目录。没有它意味着相对于当前文件

如果您使用前面带有斜杠的方法,它允许您移动文件,或者将html复制到其他文件,而不管它们在哪里


另一方面,不带斜杠的称为相对路径,带斜杠的称为绝对路径。

两者都可以,但我建议使用斜杠。当您在前面添加斜杠时,它意味着查看最上面的目录。没有它意味着相对于当前文件

如果您使用前面带有斜杠的方法,它允许您移动文件,或者将html复制到其他文件,而不管它们在哪里


另一方面,没有斜杠的称为相对路径,有斜杠的称为绝对路径。

两者都可以,但如果您不希望移动图像目录,请使用
/IMAGES/image.jpg
。这会更好,因为您可以在标记中的任何位置使用相同的uri(例如,如果添加
MAIN/SCRIPTS/newscript.php
,则
/IMAGES..
将起作用,
IMAGES/image.jpg
将不起作用)。但是,如果您总是打算将图像存储在与索引X.php相同的目录中,但最终可能会将索引X.php移到其他地方,那么您可以考虑使用<代码>图像/图像。JPG .< /P>

两者都可以工作,但是如果您不希望移动图像目录,请与“代码> /图像/图像。JPG< /代码>”。这会更好,因为您可以在标记中的任何位置使用相同的uri(例如,如果添加

MAIN/SCRIPTS/newscript.php
,则
/IMAGES..
将起作用,
IMAGES/image.jpg
将不起作用)。但是,如果您总是打算将图像存储为与索引X.php相同的目录,但最终可能会将索引X.php移到其他地方,那么您可以考虑使用<代码>图像/图像。JPG

< P>这两种情况都是有效的,但我建议使用您的第一个选项(相对路径),因此,如果将来您将整个项目移动到一个新的根目录下,那么您的所有站点都将继续工作。

在这种情况下,两者都可以工作,但我建议使用您的第一个选项(相对路径),因此如果将来您将整个项目移动到一个新的根目录下,那么您的所有站点都将继续工作。

在这种情况下,它们完全相同,但是考虑这个更新的例子:

    MAIN -> index.php
         -> ABOUT -> index.php
         -> IMAGES -> image.jpg
现在,在ABOUT/index.php中有一个区别,因为

<img src="IMAGES/image.jpg"> # => /ABOUT/IMAGES/image.jpg

<img src="/IMAGES/image.jpg"> # => /IMAGES/image.jpg
#=>/ABOUT/IMAGES/image.jpg
#=>/IMAGES/image.jpg

在这种情况下,它们是完全相同的,但是考虑这个更新的例子:

    MAIN -> index.php
         -> ABOUT -> index.php
         -> IMAGES -> image.jpg
现在,在ABOUT/index.php中有一个区别,因为

<img src="IMAGES/image.jpg"> # => /ABOUT/IMAGES/image.jpg

<img src="/IMAGES/image.jpg"> # => /IMAGES/image.jpg
#=>/ABOUT/IMAGES/image.jpg
#=>/IMAGES/image.jpg
使用相对URL的“安全性”取决于您是否将在URL中使用子目录

假设您的文件结构

如果您位于,则url
IMAGES/image01.jpg
将起作用

如果您位于,则不会加载
“IMAGES/image01.jpg
(它将查找
http://example.com/somedir/IMAGES/image01.jpg
而不是您想要的
http://example.com/IMAGES/image01.jpg

这意味着,如果您:

1) 将index.php文件移动或复制到子目录中 2) 使用url重写从url中删除index.php(也可以将example.com/some/location等url重写为
example.com/index.php?l=some/location

最安全的方法是使用变量获取基本URL:

define('BASE_URL', 'http://example.com');
然后在稍后的HTML中:

<img src="<?php echo BASE_URL; ?>/IMAGES/image01.jpg" alt="" />
/IMAGES/image01.jpg“alt=”“/>
如果将来移动站点,可以更改基本URL常量。

使用相对URL的“安全性”取决于是否在URL中使用子目录

假设您的文件结构

如果您位于,则url
IMAGES/image01.jpg
将起作用

如果您位于,则不会加载
“IMAGES/image01.jpg
(它将查找
http://example.com/somedir/IMAGES/image01.jpg
而不是您想要的
http://example.com/IMAGES/image01.jpg

这意味着,如果您:

1) 将index.php文件移动或复制到子目录中 2) 使用url重写从url中删除index.php(也可以将example.com/some/location等url重写为
example.com/index.php?l=some/location

最安全的方法是使用变量获取基本URL:

define('BASE_URL', 'http://example.com');
然后在稍后的HTML中:

<img src="<?php echo BASE_URL; ?>/IMAGES/image01.jpg" alt="" />
/IMAGES/image01.jpg“alt=”“/>

如果将来移动站点,可以更改基本URL常量。

所以我应该使用斜杠,对吗?问题是,我试图将所有相对路径更改为带有斜杠的路径(css和js文件),但所有路径都停止工作。@CainãMaturo使用斜杠时,请确保使用web根目录中的完整路径。我指的是第一个选项
,它不使用斜杠作为路径中的第一个字符,因此,这是一个相对路径,比使用绝对路径要好,因为有时您无法控制web应用程序服务的根目录。您能解释一下如何做到这一点吗?我也总是在使用“mod_rewrite”时发现错误,所以我必须使用,有没有办法不需要这个?所以我应该使用斜杠,对吗?问题是,我试图将所有相对路径更改为带有斜杠的路径(css和js文件),但它们都停止工作。@CainãMaturo,当您使用