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.

Kieren Johnstone
fonte
Possível duplicata de pacotes CSS do framework 4.5
Michael Freidgeim

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.

Kieren Johnstone
fonte
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.

Mohas
fonte
3

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

("bundles/css") 

Isso resolveu meu problema.

Usman
fonte