关于asp.net mvc:母版页中的路径

关于asp.net mvc:母版页中的路径

Paths in master pages

我已经开始使用ASP.net mvc网站的母版页,但遇到了一个问题。 当我在母版页上链接样式表时,似乎可以正确更新工作表的路径。 那是我有的代码

1
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />

但一旦页面被馈送到浏览器,我就会看源

1
<link href="Content/Site.css" rel="stylesheet" type="text/css" />

这是完美的。 但是,相同的路径转换似乎不适用于脚本文件。

1
<script src="../../Content/menu.js" type="text/javascript">

就是一样的东西 它似乎仍然可以在顶层页面上运行,但是我怀疑只是浏览器/ Web服务器可以纠正我的错误。 有没有办法让src路径也被遍历?


1
<script src="<%= ResolveClientUrl("~/Content/menu.js") %>" type="text/javascript">

制作扩展方法。 这是一个方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static string ResolveUrl(this HtmlHelper helper, string virtualUrl)
{
    HttpContextBase ctx = helper.ViewContext.HttpContext;
    string result = virtualUrl;

    if (virtualUrl.StartsWith("~/"))
    {
        virtualUrl = virtualUrl.Remove(0, 2);

        //get the site root
        string siteRoot = ctx.Request.ApplicationPath;

        if (!siteRoot.EndsWith("/"))
            siteRoot +="/";

        result = siteRoot + virtualUrl;
    }
    return result;
}

然后,您可以像这样编写脚本引用:

1
<script type="text/javascript" src="<%= Html.ResolveUrl("~/Content/menu.js")%>">

或者您可以在页面的HEAD部分使用BASE标签。 然后,所有链接都是相对于在"基本"标签中输入的位置而言的,您不必使用" ../../"和"?"东西。 CSS文件中的链接(背景url等)除外,其中链接是相对于CSS文件的位置而言的。


使用此代替:

1
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />


推荐阅读

    linux入侵网站命令?

    linux入侵网站命令?,工作,地址,信息,系统,数字,网站,名称,命令,网络,密码,lin

    linux创建硬链接命令?

    linux创建硬链接命令?,数据,系统,链接,地方,信息,文件,概念,时间,位置,工作,L

    linux重新链接库命令?

    linux重新链接库命令?,代码,软件,平台,产品,电脑,系统,入口,市场,工业,通信,l

    linux网站根目录命令?

    linux网站根目录命令?,系统,一致,设备,网站,目录,根目录,信息,标准,位置,电

    linux常用的命令路径?

    linux常用的命令路径?,地址,工作,基础,网络,管理,系统,信息,命令,企业,服务,l

    linux切换路径命令行?

    linux切换路径命令行?,系统,工作,名称,地址,目录,命令,工具,密码,一致,管理,

    linux访问网站的命令?

    linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

    linux链接远程命令?

    linux链接远程命令?,系统,地址,网络,密码,软件,名称,工具,服务,电脑,认证,如

    linux改变命令的路径?

    linux改变命令的路径?,数字,第一,目录,工作,一致,名称,系统,命令,文件夹,代

    linux中显示路径命令?

    linux中显示路径命令?,系统,地址,工作,信息,时间,命令,数据,网络,路径,名字,l

    linux命令行链接网络?

    linux命令行链接网络?,网络,系统,地址,工作,工具,最新,网址,数据,信息,环境,l

    linux保存路径命令行?

    linux保存路径命令行?,状态,地址,电脑,档案,系统,底部,软件,密码,命令,文件,l

    linux相对路径命令?

    linux相对路径命令?,工作,名字,路径,目录,管理,信息,系统,位置,名称,基础,lin

    linux动态链接库命令?

    linux动态链接库命令?,代码,项目,工程,电脑,网上,文件,程序,静态,命令,目录,

    linux多路径查看命令?

    linux多路径查看命令?,设备,软件,网络,工具,系统,情况,下降,公司,名称,大幅,

    linux路径命令解释?

    linux路径命令解释?,系统,信息,设备,数据,工具,命令,文件,标准,发行,时间,lin

    linux相对路径和命令?

    linux相对路径和命令?,地址,工作,信息,数据,系统,命令,文件,目录,时间,路径,l

    linux显示路径命令?

    linux显示路径命令?,系统,信息,工作,数据,名称,位置,标准,环境,时间,命令,lin

    linux拷贝路径命令行?

    linux拷贝路径命令行?,系统,文件,命令,目录,名称,源文件,文件夹,目标,路径,

    linux取消链接命令行?

    linux取消链接命令行?,工具,状态,环境,数据,命令,文件,终端,模式,指令,界面,l