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.
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.
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.
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