1

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

    MAIN -> index.php
         -> IMAGES -> image.jpg

在“img”标签中我应该使用这个:

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

或这个?

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

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

4

5 回答 5

3

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

于 2012-11-03T15:34:45.990 回答
1

两者都可以,但如果您不希望移动您的 IMAGES 目录,请使用/IMAGES/image.jpg. 这将是可取的,因为您将能够在标记中的任何位置使用相同的 uri(例如,如果您添加MAIN/SCRIPTS/newscript.php, then/IMAGES..将起作用,IMAGES/image.jpg但不会)。但是,如果您始终打算将 IMAGES 存储为与 index.php 处于同一级别的目录,但最终可能会将 index.php 移动到其他位置,那么您可能会考虑使用IMAGES/image.jpg.

于 2012-11-03T15:34:32.153 回答
1

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

    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
于 2012-11-03T15:36:07.943 回答
0

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

假设您的文件结构,

如果您在http://example.com/index.php,那么该 urlIMAGES/image01.jpg将起作用。

如果您在http://example.com/somedir/index.php,则"IMAGES/image01.jpg不会加载(它将寻找http://example.com/somedir/IMAGES/image01.jpg而不是您的预期http://example.com/IMAGES/image01.jpg

这意味着在以下情况下使用相对 URL 是“危险的”:

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="" />

如果您将来移动您的站点,您可以更改 BASE_URL 常量。

于 2012-11-03T15:42:41.733 回答
-1

两者都应该工作,但我建议使用斜线。当您事先添加斜杠时,这意味着在最顶层的目录中查找。没有它意味着相对于当前文件。

如果您事先使用带有斜线的方法,它允许您移动文件,或将 html 复制到其他文件,并且它们在哪里都没有关系。

附带说明一下,不带斜线的称为相对路径,带斜线的称为绝对路径。

于 2012-11-03T15:32:34.543 回答