2014-04-06 21 views
10

Moja aplikacja MVC 4 działa poprawnie na moim lokalnym komputerze.Pliki CSS nie są wyświetlane na serwerze - błąd pakietów MVC w ASP.NET. 403 - Zabronione: Odmowa dostępu

Jednak pliki CSS nie działają po opublikowaniu (nie mają wpływu na układ witryny).

Widzę, że pliki CSS znajdują się na serwerze.

Kiedy patrzę na kod źródłowy, widzę

<link href="/Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1" rel="stylesheet"/> 

gdzie jak na moim komputerze lokalnym, kod źródłowy pokazuje jak

<link href="/Content/css/myFile.css" rel="stylesheet"/> 
<link href="/Content/css/myFile02.css" rel="stylesheet"/> 

Tak, w widoku kodu źródłowego na serwer, kliknąłem na Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1, a przeglądarka zabrała mnie do 403 - Zabroniono: Odmowa dostępu.

dodaję pliki CSS z klasą BunldeConfig.cs

public class BundleConfig 
    { 
     // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 
     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
         "~/Scripts/1.9.1.js", 
         "~/Scripts/jTools.js", 
         "~/Scripts/script.js" 
         )); 

      bundles.Add(new StyleBundle("~/Content/css").Include(
       "~/Content/Css/website.css", 
       "~/Content/Css/banner.css", 
       "~/Content/Css/reusable.css", 
       "~/Content/Css/lists.css", 
       "~/Content/Css/tooltip.css", 
       "~/Content/Css/overlay.css" 
       )); 


     } 
    } 

Moje pytanie brzmi, zakładając, że nie jest to problem z serwerem IT (został on działa dobrze do niedawna) jest tam coś źle z moim kodem?

+1

Możliwy duplikat [pakietu ASP.NET MVC 4.5 pakiety CSS nie działa na serwerze] (http://stackoverflow.com/questions/12081255/asp-net-mvc-framework-4-5-css-bundles -does-not-work-on-the-hosting) –

Odpowiedz

21

Twój problem jest, że używasz ~/Content/css jako alias wiązki w new StyleBundle("~/Content/css"), gdy ta ścieżka rzeczywiście istnieje.

Tak więc, gdy pytasz o numer <link href="/Content/css?...>, zasadniczo pytasz o listę katalogów i to jest zabronione.

Spróbuj użyć czegoś innego, na przykład new StyleBundle("~/Content/styles").

UWAGA: Jeśli używasz coś podobnego ~/Content/styles jako alias może masz problemy z względnych adresów URL w .css plików. Może wydawać się to dziwne, ale możesz lepiej użyć czegoś takiego, jak ~/Content/Css/someAlias

+1

Sigh - faktycznie wiedziałem o tym, około 2 lata temu ... To dziwne, co zapominasz, kiedy przestajesz używać rzeczy. Dziękuję, rozwiązany idealnie – MyDaftQuestions

+1

Nie ma za co. Mała sugestia na przyszłość. Byłoby bardziej pomocne dla innych, gdybyś zmienił swój tytuł na coś takiego jak Błąd pakietów ASP.NET MVC. 403 - Zabronione: odmowa dostępu. " – lalibi

+0

po dwóch godzinach w końcu pracował +1 –

1

W sekcji <system.web> pliku głównego web.config tryb debugowania nie jest uwzględniany. kiedy publikujesz swoją aplikację, nie zawiera ona atrybutu debugowania. Dołączamy następujący kod:

<compilation debug="true" targetFramework="4.5"> zamiast <compilation targetFramework="4.5"> w pliku web.config.

Aby uzyskać więcej informacji, można postępować zgodnie z This Link.

+1

Rozwiązuje to symptom, ale nie naprawia przyczyny. Aby uzyskać poprawną odpowiedź, patrz odpowiedź @ lalibi. –

Powiązane problemy