MVC 发布后CSS,JS 失效及正确使用URL的写法

以前都是用 WPF在开发项目,进入物联网+互联网的时代,软件都向云端转,所以也只能开始研究B/S 这一块。所以最近在开发 MVC的项目,项目都完工,而且测试都没有问题。但是发布到IIS后,就所有CSS,JS及Ajax 调用都有问题,也是被微软坑得不行,在VS里面调试好好的,发布后就全不行,然后在网上搜,看是什么问题,找好大半天,网上一堆解决方案,最终对于我都没有效。最后自己一个一个试,慢慢调试。也得到网上几个贴子的启发,最终解决问题。所以把这个过程记下来,然后也让大家不要再走弯路。下面就给大家说说URL的问题

1。  CSS 和 JS 的引用路径问题

正确写法        MVC 发布后CSS,JS 失效及正确使用URL的写法

错语写法【当然有可能是我学艺不精,没有理解透】
MVC 发布后CSS,JS 失效及正确使用URL的写法

 

这个地方大家一定要注意,在VS里面调试时,使用 “../../” 这种相对路径是没有问题,但是发布到IIS后,这种路径就会被路由出错,最终找不到CSS或JS文件,造成网页出问题,用"~/" 表示根目录,这种写法,最终经过发布及路由后会自动转成发布后环境的中根目录,不会有任何问题。

2。在MVC 中如果有使用 Ajax 调用AP端函数,那个URL的写法,也是有讲究的

像url: "/UserLogin/GetDBInfo", Url.Content("~/Content/Site.css")  这种方式,在调试时不会报错,但是发布后就会少一个站点路径,即IIS里面那个虚拟路径网站名,正确写法如下

MVC 发布后CSS,JS 失效及正确使用URL的写法

后台控制器如下, UserLogin 是控制器的名称, GetDBInfo 是期中一个方法

MVC 发布后CSS,JS 失效及正确使用URL的写法

 希望能帮到大家, 当然网上还有提到一些解决方案,那些方案在其他状况下是有效的,但如果你们碰到是我上面说的问题,那就只能用我上面所说的解决方案了。