js-file和Masterpages中的相对图像路径

时间:2011-03-23 22:27:53

标签: javascript asp.net .net-4.0 path

情况:

我在我的母版页中使用了jQuery菜单。此母版页用于Web应用程序根目录中的多个页面。现在我在子目录中有一个页面,所有的图像,stlyesheet和javascript文件路径都无效。我几乎通过使用servercontrols,tilde(〜)并将Scriptreferences添加到ScriptManager来解决它,如下所示:

    <link runat="server" href="~/styles/Master.css" rel="stylesheet" type="text/css" /> 
    <link runat="server" rel="shortcut icon" href="~/images/favicon.ico" />
    <link runat="server" rel="stylesheet" type="text/css" href="~/styles/ddsmoothmenu.css" />
    <link runat="server" rel="stylesheet" type="text/css" href="~/styles/ddsmoothmenu-v.css" />
    <link runat="server" rel="stylesheet" type="text/css" href="~/jQuery/css/smoothness/jquery-ui-1.8.10.custom.css" />
</head>
<body>
    <form id="form1" runat="server">
        <asp:ToolkitScriptManager AllowCustomErrorsRedirect="true"  EnablePartialRendering="true" ID="ToolkitScriptManager1" AsyncPostBackTimeout="300" EnableScriptGlobalization="True" CombineScripts="true" runat="server">
            <Scripts>
                <asp:ScriptReference Path="~/jQuery/js/jquery-1.5.1.min.js" />
                <asp:ScriptReference Path="~/jQuery/js/jquery-ui-1.8.10.custom.min.js" />
                <asp:ScriptReference Path="~/jQuery/js/jPrint.js" />
                <asp:ScriptReference Path="~/jQuery/js/ddsmoothmenu.js" />
                <asp:ScriptReference Path="~/jQuery/js/nav.js" />
                <asp:ScriptReference Path="~/scripts/CommonFunctions.js" />
            </Scripts>
        </asp:ToolkitScriptManager>

但我还有一个问题:

在一个js文件中,菜单的两个图像由相对路径引用,并且在根目录中的页面或子目录中的页面中是错误的:

var ddsmoothmenu={
//Specify full URL to down and right arrow images (23 is padding-right added to top level LIs with drop downs):
arrowimages: { down: ['downarrowclass', './images/down.gif', 23], right: ['rightarrowclass', './images/right.gif'] },
transition: {overtime:300, outtime:300}, //duration of slide in/ out animation, in milliseconds
shadow: {enable:true, offsetx:5, offsety:5}, //enable shadow?
showhidedelay: {showdelay: 100, hidedelay: 200}, //set delay in milliseconds before sub menus appear and disappear, respectively

我可以使用绝对路径,但这只适用于生产系统,而不适用于开发系统。没有其他方法可以解决这个问题吗?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用CSS背景而不是图像。这样,所有图像路径都相对于STYLESHEET而不是PAGE。

答案 1 :(得分:2)

尝试使用域的相对路径。与'/images/down.gif'

一样