Estou executando um aplicativo no porto de aplicativos escrito em MVC4.
Um pacote de arquivos css não funciona. No meu computador local, no modo de depuração, vejo o código do aplicativo e os arquivos. O aplicativo funciona conforme o esperado.
<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>
Quando carrego o aplicativo no Appharbor, vejo o pacote no código, mas o aplicativo não funciona.
<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>
Quando navego nesse link, href
recebo 403 - Proibido: acesso negado.
Como solucionar isso?
asp.net-mvc
asp.net-mvc-4
appharbor
asp.net-optimization
Ricardo Polo Jaramillo
fonte
fonte
Respostas:
Meu palpite é que o caminho
Content/css
existe no disco do seu aplicativo. Nesse caso, o IIS manipularia a solicitação, não o MVC.Verifique se o caminho virtual para o pacote configurável (o parâmetro do construtor StyleBundle) não corresponde a uma pasta no sistema de arquivos.
Dos comentários:
fonte
Esse problema é por padrão. O .NET não "processa" solicitações que tenham uma extensão .js ou .css.
Existem duas correções para isso (você só precisa fazer UMA)
A) Remova as extensões dos nomes dos pacotes. (recomendado) Isso fará com que o .NET processe a solicitação e execute-a no BundleModule.
B) Adicione isso ao seu web.config na seção system.webServer , que fará com que o .NET execute solicitações .js e .css por meio do BundleModule.
Um grande grito a Ray Moro, que descobriu a causa real e a compartilhou comigo no meu blog: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
fonte
Também aconteceu comigo quando tentei implantar meu aplicativo ASP.NET MVC no AppHarbor.
Eu tinha um pacote de folhas de estilo com o nome
e a estrutura da pasta foi
Apenas alterando o nome do pacote para o
"~/Content/bootstrap-css"
meu problema foi resolvido novamente.fonte
Eu sei que estou com 4 anos de atraso para esta pergunta, mas isso funcionou para mim.
fonte
403 erro resolvido. Aqui está uma explicação detalhada e solução para o erro 403.
A solução é demonstrada para o pacote CSS. No entanto, isso também se aplica ao JavaScript.
http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved
Em poucas palavras, verifique se o caminho virtual
[Script | Style]Bundle("~/content/[script | css]")
não corresponde a uma pasta no sistema de arquivos (por exemploC:\approot\Content\[script | css]
)[Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")
fonte
Resolvi o problema adicionando abaixo a linha de código na classe BundleConfig
fonte
O que eu faço é muito simples,
Eu adiciono "js" no final do ScriptBundle da seguinte forma: new ScriptBundle ("~ / bundles / appjs") E eu adiciono "css" no final do StyleBundle da seguinte forma: new StyleBundle ("~ / content / appcss")
Os nomes das minhas pastas nunca terminam com "js" ou "css".
Isso deve resolver.
fonte
Isso também se aplica à 'classe ScriptBundle', verifique se o 'nome do parâmetro' para o construtor não corresponde a um caminho no sistema de arquivos do aplicativo da web. Lembre-se de que o IIS tentará fornecer o arquivo / solicitação.
fonte
O problema também pode vir do arquivo que está sendo criptografado. Isso ocorreu quando baixei o BootStrap e usei os arquivos fornecidos. Eles mostraram verde no Windows Explorer e funcionaram bem no Visual Studio, mas quando implantados, recebi um erro 403.
Você pode ver se eles estão criptografados acessando propriedades, propriedades avançadas e há uma caixa de seleção criptografada.
Desmarque e não será mais um problema.
fonte
Eu tenho o mesmo problema com esse erro (403 proibido). No meu caso, o motivo é que o servidor proxy em minha organização bloqueia meu arquivo css. O nome do arquivo CSS corresponde a uma das regras de bloqueio.
fonte
Eu descobri que o arquivo bootstrap.css não estava na pasta de conteúdo, então procurei nos pacotes e colei lá .. funcionou!
fonte