我已经在我的计算机上安装了ServerSideIncludes模块,但有一个例外。
<!--#include virtual="meta.inc" -->
上面的一行导致了问题。我知道我必须使用virtual
更改file
,但我有一个庞大的网站,这意味着我必须更改至少1000行代码,我正在寻找运行virtual
的方法在IIS 7中正确使用。
我一直在寻找这个解决方案,但我已经找到了上面提到的解决方案。
如果不将virtual
更改为file
感谢。
答案 0 :(得分:1)
您是否在您的网站上启用了父路径?导航到IIS中站点的“ASP”部分,然后在“行为”部分中选择“启用父路径”,看看是否有帮助。
Parent Paths选项允许您在调用MapPath等函数时使用“..”,方法是允许使用.. \表示法相对于当前目录的路径。将此属性设置为True可能会构成安全风险,因为包含路径可以访问应用程序根目录之外的关键或机密文件。
答案 1 :(得分:0)
SSI不是ASP--它们是不同的技术。
我发现每次微软发布他们的任何产品的新版本时,有时某些功能在以前的版本中有效,或者在新版本中根本不工作,看起来这个问题可能就是其中之一
所以,您可能需要考虑切换到Apache HTTPd(如果可以的话)然后您不需要对文件进行所有这些更改 - 我发现Apache一直支持SSI (以及支持它的所有HTTPd版本中的其他技术/模块,配置指令等)。这种一致性是我非常喜欢的原因之一。
答案 2 :(得分:0)
这不是一个真正的答案,而是更能确认您的问题。但是,在我的答案结束时,请看virtual
可能对您有用的一种方式。
来自MSDN博客文章IIS: Notes on Server-Side Includes (SSI) Syntax (KB 203064 Revisited) (日期为2010-12-28;适用于IIS版本4.0到7.5):
有关文件和虚拟语法的更多信息
使用文件路径的SSI指令可以使用文件或虚拟路径引用文件。
<!--#include file="myfile.txt"-->
<!--#include virtual="/scripts/myfile.txt"-->
结论: file
属性用于指定与当前文档相关的文件位置。因此,如果您的情况需要,那么您确实需要将virtual
属性更改为file
属性。
但是有一个可能的例外。维基百科上的文章Server Side Includes显示以下示例:
<!--#include virtual="menu.cgi" -->
这向我建议virtual
文件路径不必须以/
开头。如果没有前导/
,virtual
文件的位置相对于Web服务器的基本文件夹。
因此,在我看来,file
和virtual
属性可能表现相同 如果 正在引用的文件恰好位于Web服务器的基本文件夹(或基本文件夹的子文件夹)。