我有一个疑问,在HTML文件中我有以下结构:
MAIN -> index.php
-> IMAGES -> image.jpg
在'img'标签中我应该使用它:
<img src="IMAGES/image.jpg">
还是这个?
<img src="/IMAGES/image.jpg">
请注意,在第二个示例中,我在IMAGES之前添加了斜杠。这是我的问题。
答案 0 :(得分:3)
在这种情况下都可以使用,但我建议使用您的第一个选项(相对路径),因此如果将来您将整个项目移到新的根目录下,您的所有站点都将继续工作。
答案 1 :(得分:1)
两者都有效,但如果您不想移动IMAGES目录,请使用/IMAGES/image.jpg
。这样会更好,因为您可以在标记中的任何位置使用相同的uri(例如,如果添加MAIN/SCRIPTS/newscript.php
,则/IMAGES..
将起作用,IMAGES/image.jpg
则不起作用。但是,如果您始终打算将IMAGES存储为与index.php处于同一级别的目录,但您最终可能会将index.php移动到其他位置,那么您可以考虑使用IMAGES/image.jpg
。
答案 2 :(得分: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
答案 3 :(得分:0)
&#34;安全&#34;使用相对URL取决于您是否在URL中使用子目录。
假设你的文件结构,
如果您位于http://example.com/index.php,则网址IMAGES/image01.jpg
将有效。
如果你在http://example.com/somedir/index.php,那么"IMAGES/image01.jpg
将无法加载(它将会找到http://example.com/somedir/IMAGES/image01.jpg
而不是您想要的http://example.com/IMAGES/image01.jpg
)
这意味着使用相对网址是危险的&#34;如果你:
1)将index.php文件移动或复制到子目录中
2)使用网址重写从您的网址中删除index.php(以及例如example.com/some/location重写为example.com/index.php?l=some/location
的网址)
您最安全的选择是使用变量来获取基本网址:
define('BASE_URL', 'http://example.com');
然后在HTML中:
<img src="<?php echo BASE_URL; ?>/IMAGES/image01.jpg" alt="" />
如果将来移动您的网站,您可以更改BASE_URL常量。
答案 4 :(得分:-1)
两者都应该有效,但我建议使用斜杠。当您手动添加斜杠时,它意味着查看最顶层的目录。有了它,它意味着相对于当前文件。
如果您使用斜杠前面的方法,它允许您移动文件,或将html复制到其他文件,它们无关紧要。
在旁注中,没有斜杠称为相对路径,并且斜杠被称为绝对路径。