Pacote estilo MVC4 dando 403


99

Quando o empacotamento / minificação está habilitado, alguns dos meus pacotes parecem ter um URL inválido no navegador (terminando com /), e o IIS dá um erro proibido 403, como se estivesse tentando listar o conteúdo de uma pasta.

Não há diferença na forma como meus pacotes são configurados - eles não são .min.css, as permissões de acesso estão corretas etc.



Respostas:


233

Meus pacotes foram registrados como caminhos que correspondiam a uma pasta real na solução, por exemplo ~/Content/forum.

Isso funciona bem quando o pacote está desativado (o pacote está incluído corretamente!), Mas não quando o pacote está ativado.

A solução é alterar o nome registrado do bundle para não ser o mesmo que existe no sistema de arquivos.


20
Note-se também se os arquivos CSS referem-se a imagens ou outros arquivos relativos ao CSS, certifique-se o nome do arquivo pacote é algo sob a pasta que contém o CSS real. Por exemplo, ~/Content/myfolder/bundlese CSS estiver abaixo deContent/myfolder
Kieren Johnstone

1
Eu tinha dois pacotes: ~ / Content / kendo (para css) e ~ / bundles / kendo (para scripts). Portanto: erro 403. Quando mudei o nome de um deles - o problema foi embora. Obrigado.
VikciaR

1
@KierenJohnstone, desculpe por não ser específico, "Change the registered name of the bundle"o que você quer dizer com isso? - Eu assumi o nome do pacote WE Atribuir. Curtir (a parte em negrito) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle

1
Spot on. Este parece ser um bug no pacote nuget FontAwesome.
wolfyuk

1
Também no pacote select2 nuget.
Tetsujin no Oni

3

No meu caso, o pacote foi especificado como um diretório, @Scripts.Render("~/scripts")então o IIS não sabia como servir o arquivo js real, mudei o nome do pacote para representar um arquivo javascript @Scripts.Render("~/scripts.js")e isso corrigiu. O mesmo se aplica ao meu pacote de estilo.


3

O problema é a convenção de nomenclatura que o nome do seu pacote deve ser

("bundles/css") 

Isso resolveu meu problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.