Skip to main content
 首页 » 编程设计

asp.net-mvc-4之如何缩小 View 页面上脚本 block 内的 JavaScript

2024年11月01日11davidwang456

如何以最小的努力缩小 View 页面脚本块中的 JavaScript?

我有一些特定于页面的脚本想要放在特定的 View 页面上。但是 ASP.NET MVC4 捆绑和缩小仅适用于脚本文件,而不适用于 View 页面内的脚本代码。

更新

我接受了 Sohnee 的建议,将脚本提取到文件中。但我需要在特定页面上使用它们,所以我最终要做的是:

在布局页面上,我为页面特定的 javascript 块创建了一个可选部分:

    @RenderSection("js", required: false) 
</body> 

然后在查看页面中,让我们说 Index.cshtml ,我像这样渲染脚本部分:
@section js{     
    @Scripts.Render("~/bundles/js/" + Path.GetFileNameWithoutExtension(this.VirtualPath)) 
} 

如您所见,它假定 javascript 文件名 ( index.js ) 与 View 页面名称 ( index.cshtml ) 相同。然后在捆绑配置中,我有:
var jsFiles = Directory.GetFiles(HttpContext.Current.Server.MapPath("Scripts/Pages"), "*.js"); 
foreach (var jsFile in jsFiles) 
{ 
    var bundleName = Path.GetFileNameWithoutExtension(jsFile); 
    bundles.Add(new ScriptBundle("~/bundles/js/" + bundleName).Include( 
    "~/Scripts/pages/" + Path.GetFileName(jsFile))); 
} 

那么,如果您在 index页面,HTML 输出将是:
    <script src="/bundles/js/Index?v=ydlmxiUb9gTRm508o0SaIcc8LJwGpVk-V9iUQwxZGCg1"></script> 
</body> 

如果你在 products页面,HTML 输出将是:
    <script src="/bundles/js/Products?v=ydlmxiUb9gTRm508o0SaIcc8LJwGpVk-V9iUQwxZGCg1"></script> 
</body> 

请您参考如下方法:

以最少的努力做到这一点的方法是将其提取到脚本文件中。然后您可以随心所欲地使用捆绑和缩小。

如果您想内联缩小它,这将比简单地将脚本移出页面要费力得多。