如何以最小的努力缩小 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>
请您参考如下方法:
以最少的努力做到这一点的方法是将其提取到脚本文件中。然后您可以随心所欲地使用捆绑和缩小。
如果您想内联缩小它,这将比简单地将脚本移出页面要费力得多。