Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Quando coloco no modo Release não funciona o css.

Quando coloco no modo Release não funciona o css, Mas se eu alterar para o modo Debug, ele funciona. Alguma ideia do que pode está faltando? Estou utilizando o VS 2017.

6 respostas

Bom dia, Helenilson. Tudo bom?

Segui os passos desta atividade e não consegui reproduzir o erro.

Você poderia compartilhar seu código conosco? Como, por exemplo, subir um .zip no github e enviar o link aqui? Vou abrir seu projeto e verificar o que está acontecendo :)

Bom dia, Guilherme.

Eu não tenho Usuário no Git. Vou criar e te mandar. Assim que eu subir eu te posto o link. Valeu..

Tá ok, Helenilson :)

Sofri, mas acho que consegui.. rsrs.. verifica se tem tudo .. abraço.

https://github.com/HelenilsonMS/ProjetoLoja_Estudo.git

solução!

Opa, deu tudo certo. Consegui rodar e ver o que acontece!

Vamos lá, o erro acontece, porque, no arquivo BundleConfig.cs, temos:

ScriptBundle estilos = new ScriptBundle("~/bundles/estilos");
estilos.Include("~/Content/bootstrap/css/bootstrap.css");
estilos.Include("~/Content/Style.css");
bundles.Add(estilos);

Perceba que você está usando um ScriptBundle para arquivos .css. O correto seria usar a classe StyleBundle:

StyleBundle estilos = new StyleBundle("~/bundles/estilos");

Mas, oras, por que funciona em DEBUG e não funciona em RELEASE?

Em debug, os Bundles não fazem nada! Apenas injetam as várias referências no documento de saída. Veja como é renderizado a tag head quando executado em debug:

<link href="/Content/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="/Content/Style.css" rel="stylesheet"/>

Enquanto que, em release, é renderizado desta forma:

<link href="/bundles/estilos?v=Uo8YwlJkbU4XsziwgOeH1HTFACwvX_9NfZL3SfQQSRo1" rel="stylesheet"/>

Mas, a requisição para /bundles/estilos?... retorna isto aqui para nós:

/* Minification failed. Returning unminified contents.
(9,4-5): run-time warning JS1195: Expected expression: .
(9,14-15): run-time warning JS1195: Expected expression: *
(9,80-81): run-time warning JS1004: Expected ';': :
(9,120-121): run-time warning JS1002: Syntax error: }
(9,141-142): run-time warning JS1004: Expected ';': a
(9,172-173): run-time warning JS1004: Expected ';': :
(9,234-235): run-time warning JS1197: Too many errors. The file might not be a JScript .NET file: {
 */

O que faz sentido, afinal, um minificador de Scripts não faz a menor ideia de como se minifica um CSS. Mas, como em debug nenhum bundler trabalha e apenas retorna as referências puras, esse é um erro que acontece apenas em release.

Tudo bem? Esclareci sua dúvida?

Abs e bons estudos :)

Sim.. Valeu abraço