【问题标题】:HTML HREF, how to set relative path from the root (without using ".." to move up)?HTML HREF,如何从根设置相对路径(不使用“..”向上移动)?
【发布时间】:2013-10-05 01:59:41
【问题描述】:

例如,如果我的 aspx 文件中有这个:

<link href="../Css/StyleSheet.css" rel="stylesheet" type="text/css" />

带“..”表示上一级目录。

每当我将 aspx 页面移动到不同的目录级别时,我都必须重新设置它。 如何设置它以使其相对于项目文件夹的根目录? (这样,如果我将项目文件夹移动到其他地方和/或将 aspx 页面移动到上/下目录级别,我就不必再次设置它?

【问题讨论】:

    标签: html asp.net href absolute-path


    【解决方案1】:

    你应该可以使用 Page.ResolveUrl:

        <link href="<%= Page.ResolveUrl("~/Css/StyleSheet.css") %>" rel="stylesheet" type="text/css" />
    

    或者可能将其转换为服务器控制并能够使用波浪号:

        <link href="~/Css/StyleSheet.css" runat="server">
    

    【讨论】:

    • 我使用了你的方法,这就是我得到的“无法修改控件集合,因为控件包含代码块(即 )”
    • 如果您使用的是 块,您的页面标题或母版页中可能会有。您应该能够用
    • 第二个试过了,还是不行。第一个太复杂了。
    • &lt;img runat="server" ... /&gt; 不一样 &lt;img ... /&gt; &lt;a runat="server" ... /&gt; 不一样 &lt;a ... /&gt; 。 不一样的行为对于runat=server而不是
    【解决方案2】:

    你可以用/开始你的网址:

    <link href="/Css/StyleSheet.css" rel="stylesheet" type="text/css" />
    

    【讨论】:

    • 我试过这个,它在 Visual Studio 的调试模式下工作,但是当我发布到 IIS 时,它没有工作。
    • @J-CSharper 它应该可以工作。您确定您使用了正确的路径(例如 /StyleSheet.css 或 /Foo/Bar/Css/StyleSheet.css)??
    • 这是绝对路径:MyProjectName/Css/StyleSheet.css
    • 那么(如果 MyProjectName 在根文件夹内),你应该使用 /MyProjectName/Css/StyleSheet.css
    • @J-CSharper 您可以使用子域:MyProjectName.foobar.com/Css/StyleSheet.css,而不是使用 mydomain.com/MyProjectName/Css/StyleSheet.css。或者,也许您可​​以使用 &lt;base&gt; 元素
    猜你喜欢
    • 2021-06-17
    • 2013-08-24
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多