我编写了一个ASP.NET MVC3 Web应用程序,它可以在Visual Studio开发Web服务器中完美运行,并在特定的IIS Web服务器上运行。
我已成功在另一个IIS Web服务器上发布了相同的Web应用程序。除了奇怪的行为外,它运行良好。
我的控制器操作会毫无问题地返回内容,但不会呈现布局页面。我最终只得到控制器动作返回的内容。
我错过了什么?
答案 0 :(得分:2)
我打赌你已经在你的视图中硬编码了脚本和CSS,而不是使用Url助手。你写道:
<link href="/Content/Site.css")" rel="stylesheet" type="text/css" />
而不是正确的方式:
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
或者您写道:
<script src="/Scripts/jquery-1.5.1.min.js"" type="text/javascript"></script>
而不是正确的方式:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
现在继续搜索你有这样硬编码网址的所有地方,并用帮助者生成的网址替换它们。
部署在IIS中时,您的站点无法正常工作的原因是因为在IIS中可能存在一个您必须考虑的虚拟目录。所以正确的地址是http://example.com/myappname/content/site.css
,而在本地运行时,没有这样的目录http://localhost:1234/content/site.css
。