ASP.NET Pakiety CSS MVC Framework 4.5 nie działają na hostingu

Uruchamiam aplikację na app harbor napisaną w MVC4.

Pakiet plików css nie działa. W moim komputerze lokalnym w trybie debugowania widzę kod aplikacji i widzę pliki. Aplikacja działa zgodnie z oczekiwaniami.

<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>

Kiedy wgrywam aplikację do Appharbor widzę pakiet w kodzie, ale aplikacja nie działa.

<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>

Kiedy przeglądam ten link w href dostaję 403 - Forbidden: Access is denied.

Jak rozwiązać ten problem?

Author: Hao Kung, 2012-08-23

11 answers

Domyślam się, że ścieżka Content/css istnieje na dysku w Twojej aplikacji. W takim przypadku IIS będzie obsługiwał żądanie, a nie MVC.

Upewnij się, że wirtualna ścieżka dla pakietu (parametr konstruktora StyleBundle) nie pasuje do folderu w systemie plików.

Z komentarzy:

" dobrą konwencją przy tworzeniu pakietów jest dołączanie "pakiet" jako prefiks w nazwie pakietu. Zapobiegnie to ewentualnemu konflikt routingu."

 276
Author: Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 17:22:28

Ten problem jest domyślnie. NET nie "przetwarza" żądań, które mają .js lub .rozszerzenie css.

Są do tego dwie poprawki (wystarczy jedna)

A) Usuń rozszerzenia z nazw pakietów. (zalecane) spowoduje to, że. NET przetworzy żądanie i uruchomi je poprzez BundleModule.

B) dodaj to do swojej sieci.config w systemie .sekcja webServer , która spowoduje uruchomienie. NET .js i .żądania css poprzez BundleModule.

<modules runAllManagedModulesForAllRequests="true">
  <remove name="BundleModule" />
  <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
Wielki okrzyk dla Raya Moro, który rozgryzł faktyczną przyczynę i podzielił się nią ze mną na moim blogu: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
 43
Author: cdeutsch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-23 23:22:05

Zdarzyło mi się też, kiedy próbowałem wdrożyć mój ASP.NET aplikacja MVC na AppHarbor.

Miałem pakiet arkuszy stylów o nazwie

@Styles.Render("~/Content/bootstrap")

A struktura folderów była

-- Content

-- Content \ Bootstrap \ ...

Zmieniając nazwę pakietu na "~/Content/bootstrap-css" mój problem został ponownie rozwiązany.

 18
Author: Yasser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-30 07:22:22

Wiem, że jestem spóźniony 4 lata na to pytanie, ale to mi pomogło.

public static void RegisterBundles(BundleCollection bundles)
{
   ...

   BundleTable.EnableOptimizations = true;     // Added this           
}
 11
Author: RayLoveless,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-29 20:17:11

403 błąd rozwiązany. Oto szczegółowe wyjaśnienie i rozwiązanie błędu 403.
rozwiązanie jest zademonstrowane dla pakietu CSS. Jednak dotyczy to również JavaScript.

Http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved

W skrócie, upewnij się, że Ścieżka wirtualna [Script | Style]Bundle("~/content/[script | css]") nie pasuje do folderu w systemie plików (np. C:\approot\Content\[script | css]) zamiast [Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")

 8
Author: yantaq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-13 17:59:52

To co robię jest bardzo proste,

Dodaję "js" na końcu ScriptBundle tak: new ScriptBundle ("~/bundles / appjs") I dodaję " css " na końcu StyleBundle tak: new StyleBundle ("~/content/appcss")

Moje nazwy folderów nigdy nie kończą się na "js" lub "css".

To powinno wystarczyć.

 3
Author: abelabbesnabi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-24 17:43:50

Odnosi się to również do 'klasy ScriptBundle', upewnij się, że 'nazwa parametru' konstruktora nie pasuje do ścieżki w systemie plików aplikacji webowej. Pamiętaj, że IIS spróbuje podać plik / żądanie.

 2
Author: William,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-30 22:17:35

Problem może również wynikać z zaszyfrowanego pliku. Przyszło mi to do głowy, gdy pobrałem BootStrap i użyłem dostarczonych plików. Pokazali zielony w Eksploratorze Windows i działali dobrze w Visual Studio, ale po wdrożeniu dostałem błąd 403.

Możesz sprawdzić, czy są zaszyfrowane, przechodząc do właściwości, następnie Zaawansowane właściwości i tam jest zakodowane pole wyboru.

Odznacz i nie będzie już problemu.

 1
Author: Greg0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-08 02:32:49

Rozwiązałem problem dodając poniższy wiersz kodu w klasie BundleConfig

BundleTable.EnableOptimizations = false;
 1
Author: Ye Yint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-17 14:30:15

Mam ten sam problem z tym (403) błędem. W moim przypadku powodem jest serwer proxy w mojej organizacji blokuje mój plik css. Nazwa pliku Css pasuje do jednej z reguł blokowych.

 0
Author: Konstantin Orlov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-23 10:10:10

Znalazłem plik bootstrap.css nie był w folderze content, więc szukałem go w pakietach i tam wkleiłem.. zadziałało!

 0
Author: Majid ALSarra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-23 17:04:17