我要用<!--#include file="/include/head.html"-->这样的方法从网站的根下面引用一个静态文件,
但在编译时,总报"不能映射文件..."的错误,如果改成从相对目录下是可以的,但由于发布后要从根目录下开始引用,所以写法要写成"<!--#include file="/include/...."的形式,有什么方式可以解决这一问题吗?

解决方案 »

  1.   

    ASP.NET就不要用这样的引用了。如果你要引用基础变量或者类,就放到Page或者HttpApplication里。如果是HTML内容,就用MasterPage或UserControl。总之,在ASP.NET中是没有必要好像ASP那样引用文件的。
      

  2.   

    用过,没出现LZ这只种情况
    <!-- #include file="~/include/head.html" -->
    建议用用户控件
      

  3.   

    <!--   #include   file="~/include/head.html"   --> 
    这样就行了阿;最好不要使用绝对路径,你的站点设置会造成你的路径错误的
      

  4.   

    我用<!--   #include   file="/include/head.html"   --> 这种方式的原因是因为:1.我的网站大部份内容是静态的shtml文件,需要做一些公共的头尾文件,如head.html,foot.html等.用shtml的包含技术动态包含进来这些文件.还有少部份是aspx文件,希望也能动态引用这些文件.2.网站的层次比较多,如果从相对目录下引用,不会报错,但在部署时则要在多个目录下部署.统一从根目录下引用的话,我就可以只部署一份就可以了.
      

  5.   

    <!--#include virtual="/include/head.html"-->   
      

  6.   

    <!--#include virtual>和<!--#include file>有什么区别2006-12-22 12:04include file 与include virtual的区别2006-12-21 10:261。#include file 包含文件的相对路径,#include virtual包含文件的虚拟路径。 
    2。在同一个虚拟目录内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->效果是相同的,但假设虚拟目录名为myweb,则<!--#include virtual="myweb/file.asp"-->也可以通过调试,但我们知道<!--#include file="myweb/file.asp"-->是绝对要报错的。 
    3。如果一个站点下有2个虚拟目录myweb1和myweb2,myweb1下有文件file1.asp,myweb2下有文件file2.asp,如果file1.asp要调用file2.asp,那么在file1.asp中要这样写:<!--#include virtual="myweb2/file2.asp"-->,在这种情况下用#include file是无法实现的,用<!--#include file="myweb2/file2.asp"-->必然报错。相反,在myweb2的文件中包含myweb1中的文件也是一样。如果该被包含文件在某个文件夹下面,只要在虚拟路径中加上该文件夹即可。 
    4。不论用#include file 还是 #include virtual,在路径中用“/”还是“\”或者二者交叉使用都不会影响编译效果,程序会顺利执行。 
    5。以上情况不适用于2个站点文件的相互调用,而且在同一个站点内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->等效,但假设站点名为website,使用<!--#include virtual="website/file.asp"-->是错误的。 <!--include file="abc/abc.asp"--> 可同样调试通过.网站中两个虚拟目录没有调试. 
     
    =====
    这是网上的一篇关于 file和 virtual的区别,你可以看看,还有就是在vs05中可以用 ~ 代替路径呀。
      

  7.   

    <!--   #include   file="~/include/head.html"   -->           这样不行?
      

  8.   

    加波浪好~就是返回到顶层目录,应该可以的啊,不过这种写法好像在ASp里很流行,Asp.Net里就像楼上说的那样UserControl和MasterPage就很好
      

  9.   

    《iframe y也不错的 啊 
      

  10.   

    <!--       #include       file="~/include/head.html"       -->  
      

  11.   

    LZ 如你所说的那样 ,可以使用用户控件 把你编辑的head foot 放在用户控件里
    或者使用母版
      

  12.   

    catvv的方法能解决我的问题,即能保证在编译时不报错,又能实现从根下引用的效果.我因为要在静态shtml文件和aspx文件中共用这个head.html,所以不能用用户控件来写.那样要写两份了.