MVC部署资源URL未解析

时间:2013-08-08 13:46:23

标签: c#-4.0 asp.net-mvc-4 resources

我的网址无法正确解析。 部署时,我的应用名称从网址中省略。 它的假设是: HTTP:////内容/图片/ ECT 但它被渲染为 HTTP:///内容/图片/ ECT 这显然无法解决。 我的URL看起来像这样:

<img src="/Content/images/Misc/Lock.png" />

如果我在url中添加〜(在内容之前),它在部署时会完美地解析,但在我的开发环境中会中断。

这是一个MVC应用程序意味着我还有一些ajax调用操作(控制器/操作/)也无法解决,打破了大部分网站。

我部署在IIS的默认网站下,无法将其移至其他网站。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用Url.Content

这将是这样的(未经测试的)

<img src="@Url.Content("~/Content/images/Misc/Lock.png")" />

答案 1 :(得分:1)

这与您的主机有关,如果您将此站点作为子站点而不是在其自己的IIS站点下运行,则主机需要〜。通过使用全局javascript变量来保存站点根目录,我已经解决了这个问题。我在主站点布局中填充变量,如下所示:

var gSiteRoot = '@MvcHtmlString.Create(Url.Content("~/"))';

然后,当我需要在js中构建一个url时,我会这样使用它:

 var url = gSiteRoot + 'restofurl';