我在我的母版页中使用了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
我可以使用绝对路径,但这只适用于生产系统,而不适用于开发系统。没有其他方法可以解决这个问题吗?
提前谢谢。
答案 0 :(得分:2)
使用CSS背景而不是图像。这样,所有图像路径都相对于STYLESHEET而不是PAGE。
答案 1 :(得分:2)
尝试使用域的相对路径。与'/images/down.gif'