Eu tenho debug="true"
ambos os meus web.config (s) e simplesmente não quero meus pacotes compactados, mas nada que eu faça parece desativá-lo. Eu tentei enableoptimisations=false
, aqui está o meu código:
//Javascript
bundles.Add(new ScriptBundle("~/bundles/MainJS")
.Include("~/Scripts/regular/lib/mvc/jquery.validate.unobtrusive.js*")
.Include("~/Scripts/regular/lib/mvc/jquery.validate*")
.Include("~/Scripts/regular/lib/bootstrap.js")
.IncludeDirectory("~/Scripts/regular/modules", "*.js", true)
.IncludeDirectory("~/Scripts/regular/pages", "*.js", true)
.IncludeDirectory("~/Scripts/regular/misc", "*.js", true));
//CSS
bundles.Add(new StyleBundle("~/bundles/MainCSS")
.Include("~/Content/css/regular/lib/bootstrap.css*")
.IncludeDirectory("~/Content/css/regular/modules", "*.css", true)
.IncludeDirectory("~/Content/css/regular/pages", "*.css", true))
asp.net
asp.net-mvc
asp.net-mvc-4
bundle
asp.net-optimization
Baconbeastnz
fonte
fonte
Respostas:
Se você tem
debug="true"
em web.config e estão usandoScripts/Styles.Render
para fazer referência os pacotes em suas páginas, que deve desligar ambos agregação e minification.BundleTable.EnableOptimizations = false
sempre desligará o agrupamento e a minificação (independentemente do sinalizador de depuração true / false).Você talvez não esteja usando os
Scripts/Styles.Render
ajudantes? Se você estiver renderizando diretamente referências ao pacote,BundleTable.Bundles.ResolveBundleUrl()
receberá sempre o conteúdo compactado / compactado.fonte
EnableOptimizations = false
- onde esse código pertence?As diretivas de compilação condicional são suas amigas:
fonte
Para desabilitar o agrupamento e a minificação, basta colocar este arquivo .aspx (isso desabilitará a otimização, mesmo
debug=true
no web.config )vb.net:
c # .net
Se você colocar
EnableOptimizations = true
isso, o pacote será compactado e minificado, mesmo quedebug=true
em web.configfonte
debug="true"
o direito,Script.Render
mas ainda não estava funcionando. Observe também que isso não servirá nenhum arquivo .min.js., inclua cópias não minificadas do código de dependência.False
?Você pode desativar a minificação em seus pacotes configuráveis simplesmente limpando suas transformações.
Pessoalmente, achei isso útil ao querer agrupar todos os meus scripts em um único arquivo, mas precisava de legibilidade durante as fases de depuração.
fonte
Tentei muitas dessas sugestões, mas a observação parecia funcionar. Eu perdi algumas horas apenas para descobrir que esse foi o meu erro:
Ele sempre possui javascript compactado e compactado, não importa o que eu tentei. Em vez disso, eu deveria ter usado isso:
O extra '~' fez isso. Até o removi novamente em apenas uma instância para ver se era realmente isso. Foi ... espero que eu possa salvar pelo menos uma pessoa as horas que perdi nisso.
fonte
Combine várias respostas, isso funciona para mim no ASP.NET MVC 4.
fonte
Também existe uma maneira simples de controlar a minificação (e outros recursos) manualmente. É o novo transformador CssMinify () usando, assim:
Isso é conveniente quando você deseja ter alguns pacotes de peças especiais apenas para serem minificados. Digamos que você esteja usando alguns estilos padrão (jQuery), que estão ficando sob os seus pés (levando muitas solicitações excessivas de navegador para eles), mas você deseja manter a sua própria folha de estilo desminificada. (O mesmo - com javascript).
fonte
Combinei algumas respostas dadas por outras pessoas nesta pergunta para encontrar outra solução alternativa.
Objetivo: sempre agrupar os arquivos, desativar a minificação JS e CSS no caso em que
<compilation debug="true" ... />
e sempre aplicar uma transformação customizada ao pacote CSS.Minha solução :
1) No web.config :
<compilation debug="true" ... />
2) No método Global.asax Application_Start () :
fonte
Se você definir a propriedade a seguir como false, ela desativará o pacote e a minificação.
No arquivo Global.asax.cs , adicione a linha conforme mencionado abaixo
fonte
Veja como desativar a minificação por pacote:
Nota: Os caminhos usados para seus pacotes configuráveis não devem coincidir com nenhum caminho real em suas compilações publicadas, caso contrário nada funcionará. Também evite usar .js, .css e / ou '.' e '_' em qualquer lugar no nome do pacote. Mantenha o nome o mais simples e direto possível, como no exemplo acima.
As classes auxiliares são mostradas abaixo. Observe que, para tornar essas classes à prova de futuro, removemos cirurgicamente as instâncias de minificação js / css em vez de usar .clear () e também inserimos uma transformação setter do tipo mime sem a qual as construções de produção provavelmente terão problemas, especialmente quando trata-se de entregar adequadamente pacotes de CSS (firefox e chrome rejeitam pacotes de CSS com o tipo mime definido como "text / html", que é o padrão):
Para fazer tudo isso funcionar, você precisa instalar (via nuget):
WebGrease 1.6.0+ Microsoft.AspNet.Web.Optimization 1.1.3+
E seu web.config deve ser enriquecido da seguinte forma:
Note que você pode ter que tomar medidas extras para fazer seus pacotes de css funcionarem em termos de fontes etc. Mas isso é uma história diferente.
fonte
Apenas para complementar as respostas já fornecidas, se você também NÃO deseja reduzir / ofuscar / concatenar ALGUNS arquivos enquanto ainda permite agrupar e minificar completamente para outros arquivos, a melhor opção é usar um renderizador personalizado que lerá o conteúdo de um determinado pacote (s) e renderize os arquivos na página em vez de renderizar o caminho virtual do pacote. Eu pessoalmente exigi isso porque o IE 9 estava $ *% @ na cama quando meus arquivos CSS estavam sendo agrupados, mesmo com a minificação desativada .
Muito obrigado a este artigo , que me deu o ponto de partida para o código que eu usei para criar um renderizador CSS que renderizaria os arquivos para o CSS, mas ainda permitiria ao sistema renderizar meus arquivos javascript empacotados / minificados / ofuscados.
Criou a classe auxiliar estática:
Em seguida, no arquivo de layout da navalha:
em vez do padrão:
Estou certo de que criar um renderizador opcional para arquivos javascript precisaria de pouco para atualizar também para esse auxiliar.
fonte
CssTemplate
para algo como"<link href=\"{0}?f={1}\" rel=\"stylesheet\" type=\"text/css\" />"
e mudar asb.AppendFormat
linha para algo comosb.AppendFormat(CssTemplate + Environment.NewLine, urlHelper.Content(file.VirtualFile.VirtualPath), System.IO.File.GetLastWriteTimeUtc(HttpContext.Current.Server.MapPath(file.IncludedVirtualPath)).Ticks);
Pesquise por
EnableOptimizations
palavras-chave em seu projetoEntão, se você encontrar
vire-o
false
.fonte
Se você estiver usando a transformação CSS LESS / SASS, há uma opção
useNativeMinification
que pode ser configurada como false para desativar a minificação (em web.config). Para meus propósitos, eu apenas a altero aqui quando preciso, mas você pode usar as transformações web.config para sempre habilitá-lo na compilação do release ou talvez encontrar uma maneira de modificá-lo no código.Dica: O ponto principal disso é exibir o CSS, o que você pode fazer nas ferramentas de inspeção do navegador ou apenas abrindo o arquivo. Quando o pacote está ativado, o nome do arquivo é alterado em todas as compilações. Por isso, coloco o seguinte na parte superior da minha página para que eu possa visualizar meu CSS compilado com facilidade em uma nova janela do navegador toda vez que ele é alterado.
este será um URL dinâmico, algo como
https://example.com/Content/css/bundlename?v=UGd0FjvFJz3ETxlNN9NVqNOeYMRrOkQAkYtB04KisCQ1
Atualização: criei uma transformação web.config para defini-la como verdadeira para mim durante a implantação da implantação / versão
fonte
Isto pode ser útil para alguém no futuro, como o novo quadro, quando a configuração através de VS, recebe um padrão
web.config
,web.Debug.config
eweb.Release.config
. Noweb.release.config
você encontrará esta linha:isso parecia substituir as alterações em linha que eu fiz. Eu comentei esta linha e estávamos com molho (em termos de ver código não minificado em uma compilação "release")
fonte