asp-classic - 为什么#include 不能在 IIS7.5 中的 .asp 页面上工作?

标签 asp-classic iis-7.5 server-side-includes

我看到了一个类似的问题,但我的略有不同:

我在 IIS 7.5 服务器 (R2008 V2) 上使用 #include 文件时得到间歇性结果。我的包含仅当它们与当前 .asp 页面位于同一文件夹中或位于当前页面的子文件夹中时才有效。这很不方便,因为我想将它们全部保存在主页面之外的/lib 子文件夹中。

我的配置:我有一个名为 DCN 的文件夹,位于 wwwroot 文件夹的正下方。 DCN文件夹下的/lib文件夹中有几个文件,所以绝对路径是c:\inetpub\wwwroot\dcn\lib\my_include_file.asp。如果我在 DCN 文件夹中打开一个 ASP 页面,我可以从/lib 子文件夹中提取包含文件。但是,如果我从 DCN/trouble 文件夹(例如“DCN\Trouble\Search.asp”)打开一个 ASP 页面,并且 search.asp 页面中有一行表示:

<!--#include file="../lib/my_include_file.asp"-->

包含失败,我收到 500 错误。

我也试过:
<!--#include file="/lib/my_include_file.asp"--> 

结果相同。同:
<!--#include file="/DCN/lib/my_include_file.asp"-->

我将斜杠改为反斜杠,结果相同。我什至尝试:
 <!--#include file="c:\inetpub\wwwroot\dcn\lib\my_include_file.asp"-->

(出于纯粹的绝望),但我仍然得到相同的结果。

如果我在 dcn\trouble 文件夹中创建一个子文件夹,我可以包含其中的文件,但显然,这并不理想。

任何建议将不胜感激。我不禁认为这是微不足道的事情。提前致谢!

最佳答案

Yots 是正确的,听起来父路径已关闭。如果您无法打开这些,请改用虚拟路径:

根据您声明包含文件在 /DCN/lib 中的问题然后执行以下操作:

<!-- #include virtual="/DCN/lib/my_include_file.asp -->

使用虚拟路径时,您必须指定文件的完整虚拟路径,即从站点的根目录。如果您在使用 XP 的开发机器上的子文件夹中构建应用程序,然后部署到生产机器的根目录中,那么这并不理想。也就是说,Vista 或 Windows 7 上的 IIS7 现在允许创建多个站点 **。

使用 File="..." 的路径类型时, 文件名必须位于包含 #include 的文件夹的相对路径上。例如:

指令 <!-- #include file="my_include.asp" -->将包括 my_include.asp来自同一个文件夹。

指令 <!-- #include file="lib/my_include.asp" -->将包括 my_include.asp从文件夹 lib在运行脚本的当前文件夹下方。

指令 <!-- #include file="../my_include.asp" -->将包括 my_include.asp从文件夹 lib在脚本运行的当前文件夹(父文件夹)上方。

指令 <!-- #include file="../lib/my_include.asp" -->将包括 my_include.asp从文件夹 lib这是父文件夹(或当前文件夹的兄弟文件夹)的子文件夹。

如果未启用父路径,则最后两个示例将不起作用。

** 我知道有一些技巧可以在 XP 的 IIS5.1 中启用多个 IIS 站点。

关于asp-classic - 为什么#include 不能在 IIS7.5 中的 .asp 页面上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937632/

相关文章:

javascript - 在经典asp中的response.redirect之前运行Javascript函数

function - 从经典 ASP 中的函数返回记录集

asp.net - 在 IIS 7.5 上的 session 模块上挂起的请求

c# - ASP.Net - 通过 IIS 7.5 SMTP 服务器发送 SMTP 邮件

asp.net - "Validation of viewstate MAC failed"与 Kentico 7.0 和 IIS 7.5

html - 使用 web.config 允许服务器端包含在 HTML 文件中 (IIS)

performance - 有经典asp的缓存脚本吗?

javascript - 单击按钮应该计算一个值并返回查询,但没有

server-side-includes - SSI 仍然相关吗?

python - 您可以在 Python SimpleHTTPServer 上运行服务器端包含吗?如果是这样,如何?