gpt4 book ai didi

javascript - asp.net mvc 3 - 单独 View 的专门 bundle 和缩小

转载 作者:行者123 更新时间:2023-11-30 18:11:35 24 4
gpt4 key购买 nike

总结

在 bundle 和缩小 JavaScript 时,使用单个站点范围的 JS bundle 还是多个特定的 bundle 是好的做法?

如果是后者,那么在 Debug模式下如何将这些包添加到每个 View (而不是布局)并仍然让服务器返回单个非缩小的 JS 文件?

详细说明

我读了一篇非常有趣的文章,详细介绍了如何在 ASP.NET MVC3 Web 应用程序中使用 MVC4 框架中可用的 bundle 和缩小:click for article

在这篇文章中,它描述了如何从布局页面添加指向特定包的链接:

Scripts.Render("~/bundles/MyBundle")

而且我可以看到这种方法对于创建站点范围的 bundle 有何好处。

但是,关于是拥有单个站点范围的 bundle 还是多个专门的 bundle ,我不确定最佳实践是什么,我希望得到您的建议。在我看来,单个站点范围的 bundle 的优缺点是:

  • 缺点:
    • 减慢主页的初始加载速度(即使最小化)
    • 可能更难确保没有 JS 冲突。
  • 优点:
    • 所有后续页面都没有新内容可供下载
    • 只需管理一个包

好的 - 假设最佳实践结果是多个 bundle ......既然如此,我看到将 bundle 添加到布局页面是多么容易,但是特定 View 呢?每个 View 都应该注册它需要的 JS(在脚本部分),然后将其添加到页面主体的底部,以便它最后加载(不像 CSS,您添加到 Header 以便它首先加载)。我使用以下代码对此进行了管理,但此路线的问题是 JS 总是 作为单个缩小文件出现,这在 Debug模式下没有多大帮助。

@<script src="@Scripts.Url("~/bundles/myBundle")"></script>

提前致谢

格里夫

最佳答案

两者都可以。为了呈现专门的包,您可以这样做:

在您的 _Layout.cshtml 中创建一个脚本部分。我通常将我的放在页面底部,就在结束 body 标记之前,但您也可以将它放在头部:

@RenderSection("scripts", required: false)

然后,在您的 View 中,您可以像这样定义该部分:

@section scripts {

@Scripts.Render("~/bundles/myspecialuniquebundlejustforthisview")

}

当您这样做时,只有当您使用 debug="false"进行编译或在调试期间显式设置 BundleTable.EnableOptimizations = true 时,包才会被压缩和缩小。

关于javascript - asp.net mvc 3 - 单独 View 的专门 bundle 和缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com