我有一个ASP.NET MVC网站,本地运行良好。但是一旦将该网站部署到IIS 7上,所有资源的链接都会失效(例如脚本文件、图像和CSS文件)。这可能是路由问题还是IIS设置问题?
以下是我的路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("elmah.axd");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Search",
"Basic/Page/{page}",
new { controller = "Search", action = "Basic" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = MVC.Welcome.Name, action = MVC.Welcome.Actions.Index, id = "" } // Parameter defaults
);
}
编辑:
我使用T4MVC模板引用所有内容。当模板使用~/content/指定路径时,模板是正确的。问题在于生成HTML时,输出不包括“~”,只有/content/。
<img src="<%= Links.Content.Images.logo_png %>" alt="Logo" />
<img src="/Content/Images/logo.png" alt="Logo" />
注意:
实际问题是web.config文件中这一行存在问题。事实证明,2011年1月1日不是星期五而是星期六。出于某种原因,它仍然不喜欢那一行。
<clientCache httpExpires="Fri, 1 Jan 2011 15:30:00 UTC" cacheControlMode="UseExpires"/>
将其更改为以下内容即可正常运行:
<clientCache cacheControlMode="UseExpires" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
希望这里的内容可以帮助其他人解决这个问题。
谢谢!