[MVC]ASP.NET MVC发布后图片和样式路径错误的问题

baacloud免费翻墙vpn注册使用

刚刚看到blogcn上的有人遇到图片路径无法访问或找不到的问题.突然想起现在的网站的异常中也存在很多这样的错误信息,一直没有找到问题的原因,看了回复后发现原来是我一直在用"../../Content/images/xxx.jpg"这样的格式在书写路径信息,而ASP.NET MVC封装了Url.Conent("~/Content/images/xxx.jpg")这样的方法来访问图片,访问后的结果是/Content/images/xxx.jpg的路径,就自然会出现blogcn那位的发布到虚拟目录下路径无效的问题了。

查看了下MVC的源码声明如下:
        public string Content(string contentPath) {
            if (String.IsNullOrEmpty(contentPath)) {
                throw new ArgumentException(MvcResources.Common_NullOrEmpty, "contentPath");
            }
            string appRelative = VirtualPathUtility.IsAppRelative(contentPath) ? contentPath : "~/" + contentPath;
            return VirtualPathUtility.ToAbsolute(appRelative, ViewContext.HttpContext.Request.ApplicationPath);
        }

页面上输入:
<img src="Content/images/xxx.jpg"/>
原来它判断传入的路径是否网站的根路径,如果不是自动在前面加入相对根路径“~/”字符串,然后转换为绝对路径进行输出显示,结果依然是
<img src="/Content/images/xxx.jpg"/>

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏