Pakiet w stylu MVC4 dający 403

99

Po włączeniu grupowania / minifikacji niektóre z moich pakietów wydają się mieć nieprawidłowy adres URL w przeglądarce (kończący się znakiem /), a usługi IIS wyświetlają zabroniony błąd 403, tak jakby próbowały wyświetlić zawartość folderu.

Nie ma różnicy w sposobie konfiguracji moich pakietów - nie są to pliki .min.css, uprawnienia dostępu są poprawne itp.

Kieren Johnstone
źródło

Odpowiedzi:

233

Moje paczki zostały zarejestrowane jako ścieżki odpowiadające faktycznemu folderowi w rozwiązaniu, np ~/Content/forum.

Działa to dobrze, gdy pakietowanie jest wyłączone (pakiet jest dołączony poprawnie!), Ale nie, gdy jest ono włączone.

Rozwiązaniem jest zmiana zarejestrowanej nazwy pakietu, aby nie była taka sama, jak wszystko, co istnieje w systemie plików.

Kieren Johnstone
źródło
20
Należy również zwrócić uwagę, jeśli pliki CSS odnoszą się do obrazów lub innych plików w stosunku do CSS, upewnij się, że pakiet nazwa pliku jest coś pod folderu zawierającego rzeczywistą CSS. Na przykład, ~/Content/myfolder/bundlejeśli CSS jest podContent/myfolder
Kieren Johnstone,
1
Miałem dwa pakiety: ~ / Content / kendo (dla css) i ~ / bundles / kendo (dla skryptów). A więc: błąd 403. Kiedy zmieniłem nazwę jednego z nich - problem zniknął. Dzięki.
VikciaR
1
@KierenJohnstone przepraszam, że nie jestem konkretny, "Change the registered name of the bundle"co masz na myśli? - Przypuszczałem nazwę wiązki my przeznaczeniem. Na przykład (pogrubiona część) -> bundles.Add(new StyleBundle( „~ / Content / css” ).Include("~/Content/site.css"));
Don Thomas Boyle
1
Na miejscu. Wydaje się, że jest to błąd w pakiecie NuGet FontAwesome.
wolfyuk
1
Również w pakiecie select2 nuget.
Tetsujin no Oni
3

W moim przypadku pakiet został określony jako katalog, @Scripts.Render("~/scripts")więc IIS nie wiedział, jak obsłużyć rzeczywisty plik js, zmieniłem nazwę pakietu, aby reprezentowała plik javascript @Scripts.Render("~/scripts.js")i to naprawiło. To samo dotyczyło mojego zestawu stylowego.

mohy
źródło
3

Problem polega na konwencji nazewnictwa, jaką powinna mieć nazwa Twojego pakietu

("bundles/css") 

To rozwiązało mój problem.

Usman
źródło