我有一些遗留的html代码使用#include file = "filename.js"
derective将.js文件加载到html页面。问题是没有加载文件。当我尝试脚本src属性时它工作正常,这意味着路径是正确的。我使用vs2003,Windows XP专业版,IIS 5.1。当我使用#include file derective时,你知道为什么没有加载.js文件。
非常感谢, 丹尼尔
答案 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设置
的部分