【发布时间】:2010-10-01 15:22:21
【问题描述】:
除了必须用asp处理所有html文件之外,如何在html文件中包含.asp文件并对其进行处理。
【问题讨论】:
标签: html asp-classic include ssi
除了必须用asp处理所有html文件之外,如何在html文件中包含.asp文件并对其进行处理。
【问题讨论】:
标签: html asp-classic include ssi
我不完全确定你在问什么。如果您尝试将 .asp 文件包含到 .html 文件中,我认为这是不可能的。如果您将文件的扩展名更改为 .shtml,则可以将以下行放入 HTML 文件中:
<!--#include virtual="path to asp file/include-file.asp" -->
现在,无论是解析 ASP 还是显示代码,都必须由比我更了解服务器解析的人来解决。
更好的解决方案是将一个 ASP 文件包含到另一个 ASP 文件中。如果您想要页面包含等功能,那么为您的文件提供 .html 或 .shtml 扩展名只会让您更难完成您正在尝试的事情。
基本上,将 .asp 用于您要解析的文件,将 .html 用于可以按原样提供给用户的文件。
【讨论】:
您可以使用 IFRAME 标记...但这有点糟糕。我会按照Phantom Watson 所说的去做。
【讨论】:
您可以更改可执行扩展名,因此,如果您愿意,可以使 .html 可执行,以便您可以包含文件或执行任何其他操作。转到 IIS 管理器(运行->inetmgr),选择您网站的属性,在“主目录”选项卡下按“配置..”您可以在那里添加扩展名和可执行文件(您可以插入与 .asp 中相同的内容)
但我不认为这是一个最佳选择 :) 如果它是可执行的,它应该是 .asp,如果不是 - html
【讨论】:
可能的解决方案之一是将页面的扩展名从 .html 更改为 .asp,因为它不会影响您的页面及其执行。然后您可以正常包含 .asp 文件,就像我们将其包含在 .asp 文件中一样。 asp 文件。
【讨论】:
我知道这是一个老问题,但对于那些感兴趣的人来说,如果你编码正确,就有一个解决方案,我想出了如何通过我所做的一些测试来解决这个问题。我得到了它的工作编码版本,所以我知道它确实有效,但我会尝试解释一下。
假设您有页眉、导航栏或页脚(Boris 在他的一个 cmets 中提到的版权年份/信息的常用位置)。但是,您不想更改其中许多文件的 .html / .htm 文件扩展名,因为所涉及的链接以及其他网站是否链接到您的网站。
虽然对于 Boris 来说它只是每个文件的页脚,但简单的方法是将以下内容放入您的 html 文件中放置页脚代码的位置。
<script type="text/javascript" src="Footer.asp"></script>
这是它的第一部分,下一部分是在页脚 ASP 文件中使用 JavaScript,如下所示:
var Code ='';
Code+='your html here';
Code+='more html here if needed';
document.write(Code);
您甚至可以将函数放在 var 之上,这些函数将与您在以下代码中的任何内容一起使用:Code+='your html here'; 现在,在这段代码中,您可能拥有例如:Code+='<form id="UserSignUp" name="UserSignUp" method="post" action="AddUser.asp">'; 并且您可以说例如添加用户访问数据库。
但在 Boris 的情况下,它是版权年,所以在同一个 Footer.asp 文件中,您有几个选项。在Code+='your html here'; 中,您可以使用您制作/发现的代码逐年更新,或者您可以每年仅在一个文件上手动更新一次。
然而它引出了一个问题,为什么你不首先在版权年使用 JavaScript,而在 Footer.js 文件中使用 document.write();。除非您的版权年份代码在 ASP 中?
在这种情况下,在 JavaScript 函数上方的 Footer.asp 文件中,只需添加您的 ASP 代码,例如:rsYear("CopyrightYear") = Now 以及您可能需要的其余 ASP 代码。
在 JavaScript 中添加如下内容:
Code+='<script>document.write("Copyright: <%=rsYear("CopyrightYear")%>");</script>';
【讨论】: