2009-07-25 84 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。

相关问题