• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
无忧岛主
实践是检验真理的唯一标准
博客园    首页    新随笔       管理    订阅  订阅
MVC3部署IIS静态资源引用路径问题。

做了一个miniui+MVC的项目,在本机上调试是没有问题的,但是部署到IIS上之后发现所有的CSS,和JS引用都失效。

后来用Chrome跟踪调试发现原来是引用路径找不到了。

比如一个CSS文件引用../../Content/Style/demo.css,在本机调试路径是:

http://localhost:13321/Content/Style/demo.css
这样是没有问题的,但是部署到IIS上引用就成了
http://172.20.168.56:8080/Content/Style/demo.css
这样是访问不了的,后来调试发现正确的引用地址应该是
http://172.20.168.56:8080/QSMC.EIT/Content/Style/demo.css
 
也就是,部署上IIS后对静态资源的引用少了网站名(我们一个Server上挂的有多个网站)。
 
后来,在网上找了一些资料,发现有很多人都出现过这种问题,解决方案就是把引用文件的路径改成相对应于网站根目录的路径。就是把../../Content/Style/demo.css改成
<%= Url.Content("~/Content/scripts/miniui/themes/blue/skin.css")%>,这样就行了。
好吧,我费了九牛二虎之力吧所有的引用路径都坐了替换,这样图片,js 和css的引用路径是解决了,但是另一个问题是js文件中的Ajax请求路径也出现了这样的问题,由于我的js文件和aspx文件是分开放的,ajax中根本不识别
<%= Url.Content("“)这样的语法。
比如一个一个js请求我是这样写的正确的/Dispatch/SaveDispatchHeader,在本机调试是http://localhost:13321/Dispatch/SaveDispatchHeader,没有任何问题,
但是部署到iis上后就成了http://172.20.168.56:8080/Dispatch/SaveDispatchHeader
想要的结果是http://172.20.168.56:8080/qsmc.eit/Dispatch/SaveDispatchHeader。
这样的话,所有的ajax请求都会失效。。。。。。
 
如果本文引用了你的文章而未注明,请及时联系我。
posted on 2015-03-30 16:54  无忧岛主  阅读(778)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3