我不知道我做了什么,但突然我的脚本和内容文件夹为所有项目返回404。
我想也许是文件夹权限,因为我将项目放在“我的文档”下的文件夹中。我以管理员身份运行VS,但我仍然遇到问题。
我在调试模式下运行,没有弹出错误。
我的母版页没有任何变化。我试着一点一点把它拉开,没有运气。
当我导航到任何images / css / scripts时,我收到404错误。为了证明我没有疯狂,这是我的路线。
#region Error Friendly Names
routes.MapRoute(
"AccessDenied", // Route name
"Error/AccessDenied", // URL with parameters
new { controller = "Error", action = "Index", code = "403" } // Parameter defaults
);
routes.MapRoute(
"NotFound", // Route name
"Error/NotFound", // URL with parameters
new { controller = "Error", action = "Index", code = "404" } // Parameter defaults
);
routes.MapRoute(
"ServerError", // Route name
"Error/ServerError", // URL with parameters
new { controller = "Error", action = "Index", code = "500" } // Parameter defaults
);
#endregion
#region Redirection
routes.MapRoute(
"Redirection", // Route name
"Redirect/{id}", // URL with parameters
new { controller = "Redirect", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
#endregion
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
//handle all unknown routes with a 404
routes.MapRoute(
"TheOneRouteToRuleThemAll", // Route name
"{*path}", // URL with parameters
new { controller = "Error", action = "Index", id = UrlParameter.Optional, code = "404" } // Parameter defaults
);
在你的最后一条路线上犯规之前,那之前就已经很好了。我也删除它作为测试,看看是不是它,它不是罪魁祸首。
就好像内容和脚本的MVC内部处理已停止工作。
这是我的主管部分
<head><title>My Site</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="robots" content="index, follow" /><meta name="keywords" /><meta name="title" /><meta name="description" /><link href="/Content/style.css" rel="stylesheet" type="text/css" /><link href="/Content/Themes/Green/Green.css" rel="stylesheet" type="text/css" /><link href="/Content/prettyPhoto.css" rel="stylesheet" type="text/css" />
<!--[if IE 7]>
<style>ul#servicesbox li {height: 1%;width: 70px;}</style>
<![endif]-->
<!--[if IE 6 ]>
<link href="/Content/ie.css" rel="stylesheet" type="text/css" />
<![endif]-->
<script src="/Scripts/jquery.js" type="text/javascript" /><script src="/Scripts/ddsmoothmenu.js" type="text/javascript" /><script src="/Scripts/cufon-yui.js" type="text/javascript" /><script src="/Scripts/Fonts/fontin.js" type="text/javascript" /><script src="/Scripts/functions.js" type="text/javascript" /><script src="/Scripts/jcarousellite_1.0.1c4.js" type="text/javascript" /><script src="/Scripts/jquery.prettyPhoto.js" type="text/javascript" />
<!-- PNG transparency fix for IE 6 -->
<!--[if IE 6]>
<script src="/Scripts/pngfix.js" type="text/javascript" />
<script>DD_belatedPNG.fix('#logo img,#slider,#piecemaker_slider,#contentbar,#testibox,#servicesbox li img,.nivo-controlNav a,.nivo-directionNav a,#social-links a img');</script>
<![endif]-->
<script type="text/javascript">
$(function () {
$(".newsticker-jcarousellite").jCarouselLite({
btnPrev: null,
btnNext: null,
btnGo: null,
mouseWheel: false,
easing: null,
vertical: true,
hoverPause: true,
circular: true,
visible: 1,
start: 0,
scroll: 1,
auto: 4000,
speed: 1000,
beforeStart: null,
afterEnd: null
});
});
</script>
</head>
有什么想法吗?
答案 0 :(得分:2)
我开始拉出web.config的块,我找到了这个部分:
<httpHandlers>
<add verb="*" path="*" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
当我删除它时,它又开始工作了。当我尝试在IIS6中运行应用程序时,我认为它已被粘贴。
答案 1 :(得分:1)
或许与此有关:?
//handle all unknown routes with a 404
routes.MapRoute(
"TheOneRouteToRuleThemAll", // Route name
"{*path}", // URL with parameters
new { controller = "Error", action = "Index", id = UrlParameter.Optional, code = "404" } // Parameter defaults
);
对此进行评论并进行测试。
编辑: 我的错。 OP表示他已经尝试评论TheOneRouteToRuleThemAll。
您是否尝试过为静态文件设置一些忽略?
routes.IgnoreRoute("{file}.js");
routes.IgnoreRoute("{file}.html");
看起来以下路线可能会映射到您的静态位置
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);