如何在共享的用户控件中设置相对路径

How do I set my relative path in a user controll that is shared

本文关键字:设置 相对 路径 控件 用户 共享      更新时间:2023-09-26

我有以下解决方案结构。

  • 内阁(文件夹)
    • cabinet.aspx
  • 图像(文件夹)
  • 脚本(文件夹)
    • folder1
      • menu.js
  • 用户控件(文件夹)
    • menu.ascx
  • default . aspx

在userControl里面我有menu.ascx (userControl)。

menu.ascx中,我引用了几个.js文件。例如:

<script src="./script/folder1/menu.js"></script>

当我查看调用menu.ascxdefault.aspx时,它工作正常。

然而,当我在橱柜文件夹看橱柜。aspx (cabinet'cabinet.aspx)也调用menu.ascx

<%@ Register Src="../userControl/menu.ascx" TagName="menu" TagPrefix="uc2" %>

菜单代码在源代码中,但menu.js文件是404

http://localhost/cabinet/script/menu-files/menu.js

看起来需要往外走。我希望它是:

 http://localhost/script/menu/menu.js  

我需要做些什么来完成这个?

两种方法之一:

  1. 通过"/script/folder1/menu.js"将脚本引用锚定到站点根目录(注意它是如何以正斜杠开头的)。例如:<script src="/script/folder1/menu.js"></script>。这表示查看站点的根目录,并从那里继续。

  2. 有脚本标签runat="server",并通过"~/script/folder1/menu.js"(注意"~/"开始)将其根到应用程序根目录。例如<script runat="server" src="~/script/folder1/menu.js"></script>。这决定了站点的根服务器端,并相应地生成正确的路径。

在所有情况下,除了当你的开发环境不允许(我显示我的年龄回到WinXP开发),或者你正在配置一个应用程序,将生活在一个虚拟应用程序子目录在你的网站,去第一个选项。

我发现这个问题是Visual Studio Web Instance被触发的,而且需要在IIS上设置头文件以允许代码工作。

所以基本上我安装了IIS 7.5并创建了一个站点,现在我只是附加到这个进程来做我的调试。

一旦IIS设置正确,代码中的路径就可以工作了。