MVC2 - папки содержимого и скриптов возвращают 404 - PullRequest
1 голос
/ 02 ноября 2010

Я не знаю, что я сделал, но вдруг мои скрипты и папки с контентом возвращают 404 для всех элементов.

Я подумал, что, возможно, это были права доступа к папке, поскольку я поместил проект в папку в разделе «Мои документы». Я управлял VS как администратор, и у меня все еще есть проблема со стилем.

Я запустился в режиме отладки, и никаких ошибок не появляется.

Ничего не изменилось на моих главных страницах. Я безуспешно пытался разорвать его на кусочки.

При переходе к любым изображениям / 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>

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Я начал извлекать куски файла 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 голос
/ 02 ноября 2010

возможно, что-то делать с этим:?

  //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
            );

закомментируйте это и проверьте.

РЕДАКТИРОВАТЬ: мой плохой.ОП заявляет, что он уже пытался комментировать 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
            );
...