2009-07-25 85 views
0

以下是在webb應用程序中調用圖像的兩種方法。最適合在網絡應用中使用的路徑類型?

<img src="/myapp/img/world.gif" /> 

OR

<img src="http://www.example.com/myapp/img/world.gif" /> 

這將是最好的使用或兩者具有相同的含義。如果兩者不具有相同的含義,那爲什麼?並沒有任何性能限制,如果我使用第二種方法在我的應用程序調用的所有文件(圖像,SWF,FLV等)

回答

6

一般而言,第一種方法應該是引用是應用程序的一部分的任何資源的首選方式。它被稱爲相對URI引用,它允許您在不更改所有鏈接的情況下將您的應用程序轉移到另一個域名。

你甚至可以考慮使用如

<img src="img/world.gif" /> 

相對路徑......假設上面的HTML出現在一些地方像http://www.example.com/myapp/main.html

你也是不依賴於/ MyApp的路徑方式前綴,並可以輕鬆地將您的應用程序移動到/ superapp而不需要改變任何事物。

大多數應用程序框架和模板系統有報告當前應用程序的根URI的方式。在這種情況下,它可能是最方便的使用像

<img src="$(APPROOT)/img/world.gif" /> 

...根據您的特定環境不受有什麼具體的更換/擴展機制。這裏假設$(APPROOT)將被當前應用程序的絕對基URI取代。

0

沒有性能上的問題,但你的工作很多次測試在開發環境和如果使用第二種形式,將意味着改變這樣的事情:

<img src="http://beta.example.com/myapp/img/world.gif" /> 

<img src="http://www.example.com/myapp/img/world.gif" /> 

所以最好有總是一個絕對的相對URI的所有資源

+0

我有點困惑?第一個是絕對URL和第二個類型在ma問題中提到的是絕對相對URL。這是對的嗎? – Prashant 2009-07-25 17:07:18

1

前一種方法是相對URL其定位相對於服務器的根資源。後者是一個絕對URL表示不只是目錄,但主機,子域名,甚至協議。

他們每個人都有自己的優點和缺點。由於域名不是URL的一部分,因此使用相對路徑可以更輕鬆地遷移到新域。使用絕對路徑可以更輕鬆地組織文件,因爲您不必使用諸如../../images/(這會使事情變得雜亂和難以閱讀)。

至於性能,唯一的問題是,絕對URL是一個稍長(雖然不是總是),否則沒有。

0

使用您的Web應用程序框架的HTML助手來生成URL。

例如,

在Java Servlet的:<c:url value='/img/word.gif' />

在CakePHP:<?php echo $html->url('/img/word.gif'); ?>

在Rails:'<%=的link_to ...%>

之所以使用您的框架的HTML幫助器是因爲移動你的web應用程序不會破壞你的URL。

相關問題