问题标签 [asp.net-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4787 浏览

javascript - MVC4 Beta Minification and Bundling:在浏览器中排序文件和调试

我已经开始使用 MVC4 Beta 中包含的捆绑和缩小。我遇到了一些问题:

一方面,如果我使用经典<script src="Folder/js" type="text/javascript"/>捆绑,似乎我必须重命名我的文件以确保它们以正确的顺序捆绑。

  • 假设我有三个 javascript 文件:“ants.js”、“bugs.js”、“insects.js”
  • ants.js 依赖于 bugs.js
  • bugs.js 依赖于昆虫.js
  • 默认捆绑似乎按字母顺序捆绑它们。
  • 为了让它们正确捆绑,我必须将它们重命名为:“0.insects.js”、“1.bugs.js”、“2.ants.js”
  • 这真的很hackish,必须有一种更清洁的方式。

我遇到的下一个问题是调试。我喜欢在我的测试浏览器中单步执行 javascript,有没有办法在调试模式下关闭缩小?

编辑:需要明确的是,我知道我可以创建包并从 C# 注册它们,这样做似乎真的很难看。

0 投票
2 回答
3819 浏览

asp.net-mvc-4 - mvc 4捆绑和缩小-刷新时没有得到304(未修改)

我正在尝试 MVC 4 Beta 的捆绑和缩小 thru System.Web.Optimization。我希望我使用它的网站304 (Not Modified)在我点击刷新时会收到一个。

我认为 src 对我的 js 包/desktop-js-bundle?v=D33JhbMl9LHkXSPBj1tfRkRI0lHeYVmbSMQqD59bXHg1(带有那个版本号)的意义在于,版本号只有在服务器上包中的一个文件被修改时才会改变。然而,每次我点击刷新并监控 Chrome 中的“网络”选项卡时F12,它都会发出具有相同版本号的请求并获得200状态。

为什么它不只返回 304?,这将减少负载并提高性能。谢谢!

0 投票
2 回答
2734 浏览

asp.net - 新的 ASP.NET 捆绑功能 - 如何以编程方式刷新某个捆绑包?

我在我的 ASP.NET MVC 3 Web 应用程序中使用新的 ASP.NET 捆绑功能(使用 System.Web.Optmization 1.0.0-beta 预发行版)。

效果很好。

但是,我们有一些存储在数据库中的动态CSS/JS。

我想将此添加到我的核心捆绑包的单独捆绑包中,例如“DynamicBundle”。我知道怎么做,不是问题。

现在我的问题是,当数据库中的 CSS/JS 发生更改时,需要“刷新”该包,以便将这些文件的内容重新读入包中。

本质上,我需要 ASP.NET 重新生成附加到捆绑 URL 的魔法 guid/字符串。

理想情况下,我只想刷新一个特定的包,而不是整个包表。

有没有办法做到这一点?

编辑:

好的第二个问题,不知道如何将动态 CSS/JS 添加到包中。bundle.AddFile获取文件的虚拟路径,但它不是物理文件,而是字符串。我该怎么做?当然我不必先将字符串写入文件吗?

编辑 2: 所以我决定不捆绑我的动态内容。有两个原因:

  1. 它只有 1 个文件,所以我没有获得任何“捆绑”好处
  2. 捆绑是为静态内容设计的,这不是

所以我所做的是在运行时手动缩小我的动态 css/js(一次,然后缓存)。这样我就可以轻松地刷新它,只需清除缓存即可。

话虽这么说,这仍然是一个相关问题(刷新捆绑包),所以我将它保持打开状态..

0 投票
1 回答
1627 浏览

jquery - 如何应用自定义捆绑订单?

我正在使用新的 ASP.NET 捆绑功能,但似乎无法让我的自定义排序工作。这是我的 JS 文件:

我希望捆绑器在所有 jQuery 文件之前输出 boostrap*.js 。我知道捆绑器内部会在顶部对 jQuery 文件进行排序,所以我试图覆盖逻辑但没有成功:

注意:如果可能的话,我宁愿使用通配符来涵盖所有情况,而无需在代码中指定所有文件。

有谁知道我可以申请自定义订单?

谢谢

0 投票
3 回答
4681 浏览

asp.net-mvc - 为什么 MVC4 捆绑包不捆绑 Knockout.js?

我已经下载了 MVC4 并试图弄清楚捆绑功能在标准项目中是如何工作的。似乎有捆绑:

带回所有 jquery.js 文件,但不带回包含脚本中的 knockout.js 文件。为什么是这样?还有 _references.js 文件是关于什么的,为什么 knockout.js 文件被注释掉了?

0 投票
4 回答
18082 浏览

asp.net - MVC 4 中的运行时动态捆绑和缩小

我想知道是否有人可以帮助我使用 MVC 4 附带的新优化命名空间进行捆绑和缩小。我有一个多租户应用程序,我想根据每个用户的设置来决定应该加载哪些 js 文件。一种方法是预先创建所有捆绑包并根据用户的设置更改 resolvebundleurl 的虚拟路径,但这感觉不是正确的方法。此外,我在基于用户设置的 cshtml 视图中有动态 css,我希望在运行时将其缩小。

有什么建议么?我还在其他问题中看到很多关于查看 Requestreduce 的反应,但它们都来自同一个用户。

处理这两种情况的最佳方法是什么?

提前致谢!

0 投票
2 回答
3676 浏览

asp.net-mvc - 本地化的 scriptbundle 解决方案

您好我目前正在使用带有 System.Web.Optimization 的 asp.net MVC 4 rc。由于我的网站需要根据用户偏好进行本地化,因此我正在使用 jquery.globalize 插件。

我非常想继承 ScriptBundle 类并根据System.Threading.Thread.CurrentThread.CurrentUICulture. 看起来像这样:

例如,如果 ui 文化是“en-GB”,我希望拾取以下文件(当然缩小,如果可能的话也缓存,直到脚本文件或 currentui 文化改变)。

  • “~/Scripts/jquery.globalize/globalize.js”
  • "~/Scripts/jquery.globalize/globalize-en-GB.js" <-- 如果此文件在服务器文件系统上不存在,则回退到 globalize-en.js。

我尝试使用以下内容重载 Include 方法,但这不起作用,因为它不是根据请求进行评估,而是在应用程序启动时进行评估。

谢谢

康斯坦丁诺斯

0 投票
4 回答
5165 浏览

asp.net - 尝试创建新 Bundle 时 NoTransform 不起作用

我正在关注一个示例,并且在为 MVC 项目创建自定义包时无法使“NoTransform”工作。这是我的代码,由于“NoTransform”产生错误,因此无法编译:“错误 1 ​​找不到类型或命名空间名称 'NoTransform'(您是否缺少 using 指令或程序集引用?)” . 有什么想法吗?

0 投票
1 回答
4097 浏览

asp.net-mvc-4 - mvc4 捆绑强类型捆绑包

所以 MVC 4 引入了脚本和样式捆绑。这允许这样做:

然后在像这样的剃刀视图中使用:

我的问题是为什么我必须输入"~/bundles/mobile"?有没有办法获得智能以获取强类型对象?否则我必须去查一下以确保我称它为同一个东西。

我想做这样的事情:(我知道这不会编译,这只是一个例子)

或有影响的东西。

编辑:答案很简单。正如所@Hao Kung指出的,@Styles.Render只需要一个 url 字符串路径。我创建了一个类来保存路径。

在任何页面中,您只需执行

你有它。您需要付出一些额外的努力,但至少现在它是强类型的。

0 投票
1 回答
6888 浏览

asp.net-mvc - 带有 Microsoft ASP.NET Web 优化框架的 MVC4-RC (.net 4.0) 中的错误

我正在使用最新的 MVC4-RC (.net 4.0) 和 Microsoft ASP.NET Web 优化框架http://nuget.org/packages/Microsoft.AspNet.Web.Optimization/1.0.0-beta3我收到了这个错误。

找不到方法:'无效 System.Web.Optimization.Bundle..ctor(System.String, System.Web.Optimization.IBundleTransform[])'。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.MissingMethodException:找不到方法:'Void System.Web.Optimization.Bundle..ctor(System.String, System.Web.Optimization.IBundleTransform[])'。

[MissingMethodException:找不到方法:'Void System.Web.Optimization.Bundle..ctor(System.String,System.Web.Optimization.IBundleTransform[])'。] App.MVC.BundleConfig.RegisterBundles(BundleCollection bundles)在C :...\App_Start\BundleConfig.cs:53 App.MVC.MvcApplication.Application_Start() 在 C:...\Global.asax.cs:47

[HttpException (0x80004005): Method not found: 'Void System.Web.Optimization.Bundle..ctor(System.String, System.Web.Optimization.IBundleTransform[])'。] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context , HttpApplication 应用程序)+4057141 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext 上下文,MethodInfo[] 处理程序)+191 System.Web.HttpApplication.InitSpecial(HttpApplicationState 状态,MethodInfo[] 处理程序,IntPtr appContext,HttpContext 上下文)+ 352 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375

[HttpException (0x80004005): Method not found: 'Void System.Web.Optimization.Bundle..ctor(System.String, System.Web.Optimization.IBundleTransform[])'。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context ) +11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4869125

这是我正在使用的代码:

在 global.asax.cs

然后在 App_Start/BundleConfig.cs

我也在这个项目中使用 Azure,有趣的是,当我第一次启动 Azure 时,我得到了这个错误。然后,当我重建 MVC 项目并刷新页面时,它就可以工作了。

我将如何解决这个问题?