带有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扩展名。
在这些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