【问题标题】:What is happening with html file with asp @page directive and content tags within it带有 asp @page 指令和内容标签的 html 文件发生了什么
【发布时间】:2014-10-14 18:15:45
【问题描述】:

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

在我工作的其中一个站点中,我们获得了 ftp 访问权限来编辑静态 html 页面。在这些 html 页面中有一些 asp 标记,特别是具有标题、语言和 masterpagefile 属性的页面指令,以及一些具有 id、contentplaceholderid 和 runat 属性的内容标记。

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

【问题讨论】:

  • 右键单击您的母版页并选择创建内容页。您还可以嵌套母版页

标签: c# asp.net master-pages


【解决方案1】:

在这些 html 页面中有一些 asp 标签,特别是一个带有标题、语言和 masterpagefile 属性的页面指令,以及一些带有 id、contentplaceholderid 和 runat 属性的内容标签。

然后主机在提供它们之前通过 ASP.NET 运行时处理这些.html 文件。在技​​术层面,ASP.NET 页面需要具有.aspx 文件扩展名,这只是按照惯例。可以将 Web 服务器配置为将任何文件作为 ASP.NET 页面处理。

例如,如果您查看 IIS 的配置(其细节会因 IIS 版本而大相径庭),您可能会发现类似的东西(这可能已经过时了,我不必深入了解在 IIS 中多年).aspx 文件到aspnet_isapi.dll 的映射。同样的配置也可以更改为也将.html 文件映射到aspnet_isapi.dll,这将以相同的方式处理它们。

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

【讨论】:

  • 所以如果我没听错的话,它们只是设置为作为 asp.net 页面处理的 html 文件。这似乎是他们正在做的事情。有时,这些文件完全是静态的,包括顶部菜单。顶部菜单和页脚现在必须出现在其母版页中,其余内容可由我们编辑。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 2017-07-11
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多