به طور کلی استفاده از آدرسهای نسبی (Relative URLs) بهترین کار است. بنابراین در صورتی که لازم باشد سایت خود را به آدرس دیگری انتقال دهید، نیازی به تغییر تکتک آدرسها نخواهید داشت. برای مثال قادر خواهید بود سایت را در سیستم خود (localhost) گسترش داده و ویرایش کنید و سپس آن را به یک دامنه عمومی (public domain) انتقال دهید.
فرض کنید که سایت شما در مسیر /var/www/mywebsite
سرور قرار دارد. در ادامه روشهای مختلف آدرسدهی و استفادهی مناسب هرکدام را توضیح میدهیم:
http://yourdomain.com/images/example.png
یک آدرس مطلق (absolute) است و اصلا روش خوبی برای آدرسدهی به سایت خودتان نیست. در صورتی که آدرس سایت شما http://yourdomain.com
باشد، از این روش زمانی استفاده میشود که بخواهیم به یک آدرس خارجی مانند https://externalsite.com/path/to/image.png
ارجاع بدهیم.
//yourdomain.com/images/example.png
این یک آدرس نسبی برای مبنای شمای فعلی (current scheme) شما است و همیشه زمانی که یک منبع (Resource) خارجی مانند عکس، جاوا اسکریپ و... را درج میکنید باید مورد استفاده قرار بگیرد.
برای مثال اگر شما در صفحه http://yourdomain.com
قرار دارید و از تگ عکس <img src="//yourdomain.com/images/example.png">
استفاده میکنید آدرس عکس به http://yourdomain.com/images/example.png
تفسیر خواهد شد. و اگر در صفحه https://yourdomain.com
قرار داشته باشید و از تگ عکس <img src="//yourdomain.com/images/example.png">
استفاده کنید به https://yourdomain.com/images/example.png
تفسیر میشود.
/images/example.png
روش ترجیح داده شده برای منابع داخلی است. این یک آدرس نسبی بر اساس ریشهی سند (/var/www/mywebsite
) سایت شما است. به این معنی که اگر از تگ عکس <img src="/images/example.png">
استفاده کنید همیشه به آدرس /var/www/mywebsite/images/example.png
تفسیر خواهد شد.
اگر زمانی تصمیم به تغییر دامنه خود بگیرید، این لینک باز هم کار خواهد کرد زیرا یک آدرس نسبی است.
images/example.png
این هم یک آدرس نسبی است اگرچه با حالت قبل کمی تفاوت دارد. این آدرس نسبی بر اساس مسیر جاری است. یعنی این آدرس بر حسب اینکه در چه جایی از سایت در حال حاضر قرار دارید تفسیر خواهد شد.
برای مثال اگر در صفحه http://yourdomain.com
قرار داشته باشید و از تگ عکس <img src="images/example.png">
استفاده کنید همانطور که انتظار میرود به آدرس /var/www/mywebsite/images/example.png
در سرور تفسیر خواهد شد اما اگر در صفحه http://yourdomain.com/some/path
قرار داشته باشید و از همان تگ عکس استفاده کنید بیدرنگ به آدرس /var/www/mywebsite/some/path/images/example.png
تفسیر خواهد شد.
یک سند نمونه:
<!DOCTYPE html> <html> <head> <title>Example</title> <link href='//fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700' rel='stylesheet' type='text/css'> <link href="/style/style.css" rel="stylesheet" type="text/css" media="screen"></style> </head> <body> <img src="/images/some/localimage.png" alt=""> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script> </body> </html>