【发布时间】:2017-08-17 23:19:54
【问题描述】:
好的,所以我一直在使用 C# 捆绑来缩小和组合脚本和 css。
但我不确定如何将脚本附加到已经创建的包中。
我正在尝试附加到捆绑包,因为并非所有脚本都在同一个文件中,因为我正在使用 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 的内容应该是什么?
-
@ErikE 我要创建的捆绑包的内容位于 nopcommerce 解决方案中的多个文件中。所以有些文件在插件中,有些在 nop.web 所以文件到处都是。
-
文件的位置与什么有什么关系?为什么不能在一个地方指定所有文件?在第一次创建 ScriptBundle 的同时添加
global.min.js。 -
@ErikE 是因为有些文件只加载在某些页面上,所以主页上有一个滑块。然后在主页上加载该滑块的 css 和脚本文件,在所有页面上加载这些文件是没有意义的。
标签: javascript c# css optimization minify