带有asp@page指令和内容标记的html文件发生了什么

本文关键字:html 文件 发生了 什么 指令 asp@page 带有 | 更新日期: 2023-09-27 18:26:26

使用ASP.net,我熟悉创建母版页,然后能够为.aspx文件设置该母版页。

在我工作的一个网站上,我们可以通过ftp访问静态html页面。在这些html页面中有一些asp标记,特别是具有title、language和masterpagefile属性的页面指令,以及具有id、contentplaceholderid和runat属性的一些内容标记。

我的问题是他们是怎么做到的?如果我要在visualstudio中为自己的项目添加母版页,我无法为.html文件选择母版页。上传后,他们是否以某种方式构建/覆盖了.aspx文件?如果我去网站,网址会显示一个.html扩展名。

带有asp@page指令和内容标记的html文件发生了什么

在这些html页面中有一些asp标记,特别是具有title、language和masterpagefile属性的页面指令,以及具有id、contentplaceholderid和runat属性的一些内容标记。

然后,主机将通过ASP.NET运行时处理这些.html文件,然后再为它们提供服务。在技术级别上,ASP.NET页面不需要具有.aspx文件扩展名,这只是惯例。可以将web服务器配置为将任何文件处理为ASP.NET页面。

例如,如果您仔细查看IIS的配置(具体情况因IIS版本而异),您可能会发现.aspx文件到aspnet_isapi.dll的映射。同样的配置也可以更改为将.html文件映射到aspnet_isapi.dll,这将以相同的方式处理它们。

这不是常见的做法,不仅是因为惯例,还因为服务器端处理增加了开销,并且性能不如直接从web服务器提供静态文件。由于.html文件传统上具有静态内容,因此让IIS直接为它们提供服务要比通过ASP.NET引擎处理它们快得多。这是可能的,而有问题的主持人似乎正是这样做的,出于这些原因,这并不常见。

在Visual Studio中,您可以更改设置以提供动态内容。

在应用程序设计器中,必须指定ASP.NET应用程序公开动态内容还是静态内容。动态内容指定运行应用程序或与应用程序关联的任何Web服务需要诸如ASP.NET之类的脚本处理器。静态内容指定不需要脚本处理器,例如,运行应用程序或显示HTML。

http://msdn.microsoft.com/en-us/library/ms242474(v=vs.90).aspx