HTML中的标签 动态 & 静态

 使用<base>的网站并不多,我在参考Microsoft.com首页时注意到了这个标签。

—————————————-

<base>出现在<head>之中,用于定义当前文档的URL,作为浏览器解析外部资源,例如图片、CSS样式表文件的基址。

例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"&gt;

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>Title</title>

<base href="http://www.163.com&quot; />

</head>

 

<body>

<img src="./images/neteaselogo.gif" />

</body>

</html>

<img>src将被解析为http://www.163.com/images/neteaselogo.gif,此页面将显示网易的logo

如果没有指定<base>,那么浏览器默认当前文档的URL为基址。

—————————————-

我的第一反应就是<base>可以设为web site root URL,这样不管文档自身在哪个路径,外部资源都可以用统一的相对路径指定。非常遗憾,这个想法马上遭到了质疑,DW8design time会忽略<base>,仍以当前文档路径作为基址。Visual Studio 2005design time也会忽略,并且指定的<base>如果不是当前文档路径,Server Control会出错。因为ASP.NET生成HTML的时候没有考虑到<base>(事实上也不可能考虑周全),所以只要出现相对路径的地方都可能出错。当然,作为一个基于组件的Net Application Framework,这是完全可以理解的。

如果使用像ASP.NET这类基于组件的Framework,基本上不要指望<base>能带来什么好处,既然使用了Framework,就应该遵循一些原则,充分利用其长处。避免用Client Script去操作Server Control生成的element,除非你很清楚Server Control的render方法并且能保证render行为不变。

如果使用PHP这类以文本处理为中心的Server technology,使用<base>还是可行的,因为你不必去担心Server Control。例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"&gt;

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>Title</title>

<base href="<?php echo $_CONFIG[‘SiteRootUrl’]; ?>" />

</head>

 

<body>

<img src="./images/logo.gif" />

</body>

</html>

为了享受DW带来的便利,Design的时候可以先把文件拷贝到SiteRootUrl下,部署的时候就想放哪里就放哪里。

 

<base>还可以帮助实现站点入口虚拟化,当然,真正地虚拟化要靠完善的服务段支持,<base>可能作为一种客户端的实现方式,参考http://www.microsoft.com。实现了站点入口虚拟化和url rewriting后,DW的便利会有所折扣,因为DW毕竟是把网页当成静态文件看待。

 

基本上是动态性越高,适应性就越强,但Design time的工作越不方便。DW + Zend Studio可谓是PHP站点开发最佳搭档,但毕竟不是一个统一的solution,选择动态性带来的runtime便利,还是享受静态性的design time便利,就是您的选择了。而Visual Studio 2005则提供了一个高度一致的集成开发环境,WYSIWYG性能较上个版本大大提高,不得不说是开发者的得力工具。

 

Advertisements
This entry was posted in Web. Bookmark the permalink.

2 Responses to HTML中的标签 动态 & 静态

  1. Unknown says:

    wow gold!All wow gold US Server 24.99$/1000G on sell! Cheap wow gold,wow gold,wow gold,Buy Cheapest/Safe/Fast WoW US EU wow gold Power leveling wow gold from the time you wWorld of Warcraft gold ordered!

    wow power leveling wow power leveling power leveling wow power leveling wow powerleveling wow power levelingcheap wow power leveling wow power leveling buy wow power leveling wow power leveling buy power leveling wow power leveling cheap power leveling wow power leveling wow power leveling wow power leveling wow powerleveling wow power leveling power leveling wow power leveling wow powerleveling wow power leveling buy rolex cheap rolex wow gold wow gold wow gold wow gold -209992202188856

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s