最适合在网络应用中使用的路径类型?

时间:2009-07-25 16:56:14

标签: optimization web-applications path

以下是在webb应用程序中调用图像的两种方法。

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

OR

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

最好使用或两者具有相同的含义。如果两者的含义不同,为什么呢?如果我在我的应用程序中使用第二种方法调用所有文件(图像,swf,flv等等),是否有任何性能限制。

4 个答案:

答案 0 :(得分: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。

答案 1 :(得分:1)

前一种方法是 相对URL ,用于查找相对于服务器根目录的资源。后者是 绝对URL ,它不仅指示目录,还指示主机,子域,甚至协议。

他们各有利弊。使用相对路径可以更轻松地迁移到新域,因为域名不是URL的一部分。使用绝对路径可以更轻松地组织文件,因为您不必使用 ../../ images / 之类的东西(这会使事情变得混乱且难以阅读)。

至于性能,唯一的问题是绝对URL稍长(虽然不是总是),否则没有。

答案 2 :(得分:0)

没有性能问题,但很多时候您在开发环境中工作和测试,如果您使用第二种形式,则意味着更改类似的内容:

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

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

因此,最好始终为所有资源设置绝对相对URI

答案 3 :(得分:0)

使用您的Web应用程序框架的HTML帮助程序生成URL。

例如,

在Java Servlets中:<c:url value='/img/word.gif' />

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

在Rails中:`&lt;%= link_to ...%&gt;

使用框架的HTML帮助程序的原因是因为移动Web应用程序不会破坏您的URL。