ASP.net MVC 缩小和捆绑 - 如何缩小单个 JavaScript 文件
ASP.net MVC Minifying and Bundling - How to minify a single JavaScript file
为了保持不引人注目的JavaScript指南,我将所有JavaScript从我的每个视图中移出,并移动到一个单独的.js文件中。
但是,在 1 个视图中,我需要动态创建一些 JavaScript 变量,以便将它们插入到 ViewBag 中并直接呈现到视图中:
$(document).ready(function () {
@(ViewBag.PrePop)
@(ViewBag.PreDiscount)
});
这工作正常,直到我尝试使用新的 ASP.net 捆绑和缩小功能。
将所有这些小的外部 JavaScript 文件捆绑在一起,然后从每个页面调用组合脚本意味着每个页面(包含 ViewBag 发出的变量的页面除外)都有一个变量引用错误:
Uncaught ReferenceError: quotes is not defined
所以这基本上意味着我不能捆绑这个特定的JavaScript文件。
但是,我想将其缩小。为此,我是否只需声明一个仅包含一个 JavaScript 文件的捆绑包:
bundles.Add(new ScriptBundle("~/bundles/mypagescript").Include(
"~/Scripts/mypagescript.js"));
还是有另一种方法可以单独执行缩小?
是的,目前我们并没有真正公开任何方法让您轻松调用优化只是为了缩小字符串(如果您真的需要,您可以通过 JsMinify.Process
的实例来完成),即:
string js = "//I am a comment'r'nfoo = bar;'r'nfoo = yes;";
JsMinify jsmin = new JsMinify();
BundleContext context = new BundleContext();
BundleResponse response = new BundleResponse(js, null);
response.Content = js;
jsmin.Process(context, response);
Assert.AreEqual("foo=bar,foo=yes", response.Content);
但是您的建议可能是最好的(创建一个文件的捆绑包)。
很抱歉回答晚了;)
您可以使用Microsoft.Ajax.Utilities.Minifier。创建一个实例并调用 MinifyJavaScript - 它将一个字符串(JS-code)作为参数并返回缩小的代码。
Dim minifier As New Microsoft.Ajax.Utilities.Minifier()
minifier.MinifyJavaScript(script)
然后,您可以创建自己的 HTML 帮助程序或操作来调用它。这至少在我的情况下效果很好;)
相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 是否可以禁用jquery中的单个单选按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 使用jquery选中/取消选中单个复选框
- 单个页面上有多个标记表单
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 用于多个类事件Jquery的单个函数
- 如何在d3上的图形中添加放大和缩小按钮
- 仅使用文件对象选择单个文件
- 如何使用单个表单填写多个表单
- 如何将html打包到单个应用程序中
- 更改图层中单个矢量特征的图标
- 何时应从单个缩小的JavaScript文件中排除文件
- 从缩小的文件中提取单个 javascript 文件代码
- 将 JavaScript 缩小的文件压缩为单个文件
- ASP.net MVC 缩小和捆绑 - 如何缩小单个 JavaScript 文件
- 使用 grunt requirejs 与单个大型缩小文件连接缓慢时加载问题
- 需要JS(AMD)在底层工作,将文件缩小到单个文件
- 使用CSS和Javascript缩小单个HTML文件的Grunt任务