在一个js文件A中调用到另外一个js文件B(我封装起来通用)的方法,会向该方法传递一个路径。
文件A对应的路径../../abc.ashx,然而文件B对应的路径是../abc.ashx。
这样我在调用的时候,返回404错误,也就是找不到该文件,这个调试时iis中调试的结果,vs中调试时正常的。我的问题就是,我现在可能多个地方用到文件B的方法,那么路径,我不打算都用../abc.ashx,就好像是easyui中的datagrid绑定路径,都跟自己的js文件挂钩似的。

解决方案 »

  1.   

    你应该传绝对路径才不会出错var url = "<%=Page.ResolveUrl("~/xxx.js")%>";
      

  2.   

    或者
    <script src="<%=Page.ResolveUrl("~/xxx.js")%>"></script>
      

  3.   


    原来是我看错了,我刚才把封装好的js文件,随意放都没有问题。
    你说的这个是在页面中引用js文件,我每次都是引用相对路径,也没有出过异常的。这次异常,是iis,我在vs调试的时候,正常,发布到iis,就异常。这个跟iis没有映射ashx没有关系。描述下:
    js文件A中方法,引用了路径../../abc.ashx,然后做ajax异步刷新。
      

  4.   

    下面是代码:
     $("#MyGrid").MyGrid({ title: '自定义',
            width: 580,
            height: 380,
            url: "../Ajax_ashx/TableHandler.ashx?timestamp=" + new Date().getTime(),
            data: "Type=GetClassApplyByListId&listcode=" + listcode,
            page: 1,
            rows: 10,
            left: 10,
            columns: [
    { field: 'sClassCode', title: '班级编号', width: 65, fontsize: 10 },
    { field: 'sClassName', title: '班级名称', width: 95, fontsize: 10 },
    { field: 'sClassAddress', title: '上课地点', width: 110, fontsize: 12 },
    { field: 'sSchoolTime', title: '上课时间', width: 150, fontsize: 10 },
    { field: 'dReportDate', title: '报到日期', width: 80, fontsize: 12 }
    ],
            specialcolumns: [
        { field: 'operate', title: '操作', width: 40,
            formatter: function() {
                return '<span style="color:red;cursor:pointer; " >详情</span>';
            }
        }
    ],
            onClickRow: function(rowIndex, rowData) {
            }
        });
      

  5.   

    主要是路径:url: "../Ajax_ashx/TableHandler.ashx?timestamp=" + new Date().getTime(),
    原来的是"../../"在vs中调试ok,iis,就得去掉一个,但是,就相对路径本身而言,"../../"是正确的