时间:2010-01-14 12:55:19

标签: asp.net iis

我有一些遗留的html代码使用#include file = "filename.js" derective将.js文件加载到html页面。问题是没有加载文件。当我尝试脚本src属性时它工作正常,这意味着路径是正确的。我使用vs2003,Windows XP专业版,IIS 5.1。当我使用#include file derective时,你知道为什么没有加载.js文件。

非常感谢, 丹尼尔

2 个答案:

答案 0 :(得分:4)

#include指令是服务器端功能,不是浏览器的功能。因此,您无法通过在脚本标记中使用它来验证文件名是否正确,因为它是由浏览器加载的。

如果您尝试包含不存在的文件,服务器将返回HTTP 404错误消息,它不会以静默方式忽略#include。

服务器必须处理该页面才能使#include标记生效,即它必须具有脚本引擎处理的文件类型,如.asp.shtml。如果您在.htm.html文件中添加#include标记,则不会对其进行处理。

正确的#include标记如下所示:

<!--#include file="filename.js"-->

它也可以使用虚拟寻址,即路径来自根而不是页面所在的文件夹:

<!--#include virtual="filename.js"-->

请注意,您所包含的文件必须在其中包含脚本标记,以便浏览器将其视为脚本,或者您必须在include周围添加脚本标记:

<script type="text/javascript"><!--#include file="filename.js"--></script>

答案 1 :(得分:2)

包含文件需要正确配置服务器以允许服务器端包含。看看微软关于在你的XP机器上设置ASP和SSI的IIS 5.1信息:Microsoft IIS SSI Setup。导航到标题为:IIS上的ASP和SSI设置

的部分