asp.net - JS/CSS 包括部分替换、调试与发布

标签 asp.net javascript msbuild compression

我很想知道人们如何处理条件标记,特别是在发布和调试构建之间的母版页中。

这适用于处理连接的 js 和 css 文件的特定场景。我目前正在使用 YUI 压缩的 .Net 端口从大量单独的文件中生成单个 site.css 和 site.js。

我想到的一个想法是将 js 和 css 包含部分放在用户控件或面板集合中,并有条件地显示 <link><script>基于程序集的调试或发布状态的标记。类似的东西:

#if DEBUG
    pnlDebugIncludes.visible = true
#else
    pnlReleaseIncludes.visible = true       
#endif

面板在语义上真的不是很好 - 包装<script> <div> 中的标签有点恶心;必须有更好的方法。我还认为像 <div> 这样的 block 级元素在 <head> 内将是无效的 html。

另一个想法是这可以使用 web.config 部分替换来处理,但我不确定我将如何去做。

最佳答案

我刚刚在我的 ASP.NET MVC 项目的母版页中尝试了这个,它成功了。如果在 DEBUG 模式下,我使用 jQuery 的开发版本,如果不在 DEBUG 模式下,我使用 jQuery 的缩小版本:

<head runat="server">
<% #if DEBUG %>
    <script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.js") %>"></script>
<% #else %>
    <script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.min.js") %>"></script>
<% #endif %>
</head>

关于asp.net - JS/CSS 包括部分替换、调试与发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895768/

相关文章:

wpf - Microsoft.Build.BuildEngine.Engine 在构建 WPF 应用程序时抛出错误

c# - 如何敦促用户在进入网站时更新用户的浏览器

javascript - 禁用隐藏字段的RequiredFieldValidator

c# - 如何在IdentityServer4/Identity中配置角色声明名称

javascript - 如何将 props 发送到组件以响应条件?

未找到 MSBuild 目标包

c# - Web 请求错误 407 需要代理身份验证

javascript - 在 HTML 中向下滚动到第 N 个字符

javascript - 选择文本并替换为循环

encryption - 使用 AES256 编译 System.Data.Sqlite