gpt4 book ai didi

javascript - 将附加文件添加到 C# 脚本和 css 包

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:14 25 4
gpt4 key购买 nike

好的,所以我一直在使用 C# 捆绑来缩小和组合脚本和 css。

但我不确定如何将脚本附加到已创建的包中。

我正在尝试附加到 bundle ,因为并非所有脚本都在同一个文件中找到,因为我正在使用 visual studio 中的 nopcommerce 解决方案。所以脚本被添加到整个解决方案中。

这是捆绑代码:

bundles.Add(new ScriptBundle("~/Content/themes/base/js/scripts/footeroptimized").Include(
"~/Themes/MyTheme/Content/js/bootstrap.min.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js",
"~/Scripts/public.common.min.js",
"~/Themes/MyTheme/Content/js/readmore.min.js"));

我想也许我可以使用 bundles .Add() 函数,但我得到一个错误:

 bundles.Add("~/Themes/MyTheme/Content/js/global.min.js"));

错误是:“无法从字符串转换为 system.web.optimization.bundle”

我找不到任何解释为什么我会收到该错误的信息。

我还添加了用于优化的 using 语句 @using System.Web.Optimization;

任何人都知道如何添加到已经创建的包中。

更新:

我也尝试过以下方法,但它不起作用:

var footerScriptBundle = new ScriptBundle("~/Content/themes/base/js/scripts/footeroptimized");
footerScriptBundle.Include(
"~/Themes/MyTheme/Content/js/bootstrap.min.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js",
"~/Scripts/public.common.min.js",
"~/Themes/MyTheme/Content/js/readmore.min.js");

footerScriptBundle.Include("~/Themes/MyTheme/Content/js/global.min.js");

干杯

最佳答案

您描述的用例不适用于 bundle 。您不能在运行时修改 bundle ,即使可以,这样做也没有意义。

想一想。您访问一个页面,请求并接收包 abc.js ,浏览器缓存。然后,您访问另一个页面,该页面也要求 abc.js ,只有你希望内容不同。除此之外,浏览器不会请求该文件,并且会重用旧文件,因为它已被缓存。 bundle 用于避免跨多个页面发送始终需要的文件。

如果您确实需要捆绑额外的文件,那么您需要将不同的文件放入它们自己的 bundle 中并在每个页面上请求两个 bundle ,或者为每个不同的场景创建一个 bundle ,一个包含所有基本文件的 bundle 加上特定于站点区域的文件。

但是,如果只需要一个附加文件,而您尝试添加到包中的文件仅在一个页面上使用,那么您就错了。该文件根本不属于 bundle !像往常一样用普通的 <script> 端上来或 <link>标签。即使您有多个文件,如果它们只用在一个页面上,也许您可​​以将它们组合成一个(未捆绑的)文件。或者按照上面的建议,制作一个仅适用于这几个文件的特殊 bundle ,并将其作为第二个单独的 bundle 包含或不包含。

浏览器必须请求两个对象(一个包和一个页面特定的 javascript 或第二个包)的额外开销并不大。尝试以这种方式构建 bundle 不会获得太多值(value),而且这样做会让人头疼到噩梦般的程度。不要那样做。

有一天使用 HTTP 2.0,我们可能会忘记捆绑,因为浏览器可能会通过单个请求请求多个文件,然后在单个响应中收到所有答案。到那时,缩小仍然很重要,但我们会完全放弃捆绑,因为它们的好处将通过协议(protocol)本身完全实现。仍然可能有多个请求,按照请求可以从哪里得到服务的线分割,例如一个请求可以从 CDN 提供的所有静态内容(图像、视频、样式表、javascript 等),一个请求对于所有动态内容。

关于javascript - 将附加文件添加到 C# 脚本和 css 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45746273/

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