簡體   English   中英

如何使用“相對”網址?

[英]How to use “relative” URLs?

我有一個疑問,在HTML文件中我有以下結構:

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

在'img'標簽中我應該使用這個:

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

或這個?

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

請注意,在第二個示例中,我在IMAGES之前添加了斜杠。 這是我的問題。

兩者都適用於這種情況,但我建議使用您的第一個選項(相對路徑),因此如果將來您將整個項目移動到新的根目錄下,您的所有站點都將繼續工作。

兩者都可以工作,但如果你不想移動你的IMAGES目錄,請使用/IMAGES/image.jpg 這將是更好的,因為你將能夠在你的標記中的任何地方使用相同的uri(例如,如果你添加MAIN/SCRIPTS/newscript.php ,那么/IMAGES..將起作用, IMAGES/image.jpg不會)。 但是,如果您始終打算將IMAGES存儲為與index.php相同級別的目錄,但最終可能會將index.php移動到其他位置,那么您可以考慮使用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

使用相對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

這意味着如果您使用相對URL是“危險的”:

1)將index.php文件移動或復制到子目錄中2)使用url重寫從URL中刪除index.php(以及例如example.com/some/location重寫到example.com/index.php?l=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常量。

兩者都應該有效,但我建議使用斜杠。 當您手動添加斜杠時,它意味着查看最頂層的目錄。 有了它,它意味着相對於當前文件。

如果您使用斜杠前面的方法,它允許您移動文件,或將html復制到其他文件,它們在哪里都無關緊要。

在旁注中,沒有斜杠稱為相對路徑,並且斜杠被稱為絕對路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM