问题标签 [system.web.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 投票
1 回答
268 浏览

asp.net-mvc - 在区域中捆绑虚拟路径

我想创建一个具有以下虚拟路径(插件框架)的样式包:

当我转到该路径时,我收到一条错误消息,指出该文件不存在。静态文件处理程序正在尝试查找文件。我怎样才能使这个工作与捆绑?

0 投票
2 回答
422 浏览

asp.net-mvc - 从外部加载 MVC JS 包

我的 MVC 5 项目中有一个小型 JS 库,我希望外部用户可以将其加载到他们的应用程序中。目前我正在像这样捆绑它:

然后我可以通过浏览器在路径上访问捆绑的库/clientApi

然而,它总是被缩小,即使我设置了我的 web.config debug=true,并且我自己的应用程序中的其他包被包含为非缩小。

如何使捆绑包中的文件可用作非缩小捆绑包文件?

0 投票
0 回答
228 浏览

jquery - 防止 Microsoft 捆绑将“jquery”文件添加到顶部

我已经System.Web.Optimization成功运行了几个月,一切都很好。

我目前正在将 CKEditor 添加到我的网站,但遇到了问题。

背景:

CKEditor 有它自己的 ckeditor.js 文件。它们还包括一个 jquery“插件”,它允许我们使用 jquery 与它们的对象进行交互。

问题:

我决定创建一个包含这两个文件的单独包,以便在我需要使用它们时包含它们,这样我必须始终包含这两个文件。这是我得到的:

我注意到输出(当debug="true")出现故障:

经过一番研究,除了要创建的一些类/函数之外,我什么也没发现,它们会保留顺序——如何指定一个明确的 ScriptBundle 包含顺序?, -- 但是我在本地测试了一些东西,发现其中的所有文件都会jquery自动放在顶部。

问题:

我想我可以重命名 jquery 文件,但如果有另一种方式,我宁愿不这样做。不仅是为了实用性,我必须记住我将它重命名为将来对 CKEditor 的更新,也是为了我自己的知识(我想尽可能多地知道,不仅是如何,还有什么,为什么,什么时候,你得到了交易)。有没有办法不通过类/函数方法来防止jquery命名文件跳到顶部?

0 投票
2 回答
1893 浏览

asp.net - 捆绑启用优化

当我在我的 mvc 项目中为我的 javascript 文件启用 BundleTable.EnableOptimizations 时,它不会加载任何文件。我也没有收到任何错误。它根本不会加载我的任何文件。

这是我的包:

在我看来:

所有文件都存在,因为当我禁用优化时,它又可以正常工作了。

0 投票
1 回答
1486 浏览

c# - Script.Render(absolute or partial path) 没有禁用编译 debug=true 的捆绑

你们中的任何人都知道为什么Script.Render 在捆绑路径不相对于根文件夹时不禁用捆绑以进行编译 debug ="true"吗?

我正在使用到根目录的相对路径创建捆绑包(此路径类型是强制性的,否则将引发异常):

但是当我尝试渲染它时,我需要提供完整的 url,如下所示:

并且无论编译调试模式如何,都会启用捆绑包。

有什么我想念的想法吗?

我的问题与这个问题非常相关- 我正在以这种方式渲染我的包 - 现在:如何在编译 debug="true" 时禁用它?

有任何想法吗 ?

谢谢!奥维

0 投票
2 回答
1927 浏览

javascript - What js/css files should I bundle?

I am looking into the bundling features of ASP.NET 4.0 and am just curious what rules/practices people follow when deciding which files to bundle?

Should I group things by what they are, like put all jQuery files together or is it a good idea just to bundle up all files that are used in the same place?

0 投票
1 回答
350 浏览

c# - 单元测试:模拟 BundleTable.Bundles

我正在尝试对创建的自定义助手进行一些单元测试,以呈现捆绑中包含的脚本。

我的问题是我需要为 BundleTable.Bundles对象创建一个模拟,但我没有找到任何相关的方法来实现这一点。

我的方法如下所示:

有什么想法可以实现这一目标吗?

我正在使用犀牛模拟。

0 投票
2 回答
1276 浏览

asp.net - IItemTransform 和现有的缩小文件

TL;DRIItemTransform当缩小文件已存在于与原始(非缩小)文件相同的文件夹中时,不会执行。

问题说明

我遇到这个问题主要是因为 CSS 相关图像引用。如果您使用IItemTransformJavascript 文件,则同样适用。

这就是我正在使用的:

  1. 我正在使用带有 Web Essentials 插件的 Visual Studio 来支持 LESS 文件
  2. 我正在编写 LESS 文件并让 Web Essentials 插件在保存时自动缩小文件
  3. 我也在我的项目中使用捆绑和缩小
  4. 在创建 CSS 包时,我CssRewriteUrlTransform用来使 CSS URL 成为绝对的(即背景图像),以便在将多个 CSS 文件捆绑在一起后图像仍然可以工作

到目前为止,这里没有什么异常,但它不起作用。

似乎是什么问题?

捆绑和缩小的工作方式是尽量避免过度处理。这意味着当缩小文件与原始文件存在于同一文件夹中时,它不会运行自己的缩小文件,而是提供现有文件。

只要它至少对那些预先存在的缩小文件运行转换,就可以了。但事实并非如此。所以我最终得到了一个捆绑包中的相对 URL,这几乎破坏了所有这些资源。

解决方法

  1. 始终在 LESS 文件中提供绝对路径
  2. 在 Web Essentials 设置中禁用保存文件缩小
  3. 定义我的包时请参考缩小文件,因为它们没有缩小版本(*.min.css 没有 *.min.min.css),所以缩小器实际上会拾取文件并缩小,同时还运行转换它。

从我的开发过程和使用的工具(以及它们的配置方式)的角度来看,这看起来像是一个错误。如果这些文件是同一缩小过程的结果,那么这根本不是一个错误,因为在执行缩小时会执行转换。确实,此类功能不存在,而且可能永远不会存在,因为应用程序需要写入权限才能使其工作。结果:这是一个错误。现有的缩小文件应在缓存之前通过转换进行处理。

问题

是否有可能以某种方式说服捆绑和缩小:

  1. 不使用现有的缩小文件版本
  2. 在现有的缩小版本上运行转换
0 投票
2 回答
2390 浏览

asp.net - 使用无 cookie 静态内容服务器时,如何使捆绑包取消缩小并列出单个文件?

我有两个 VS 项目,一个用于主网站,一个用于“静态内容”网站,其中所有 css、js、图像和其他静态内容都将通过无 cookie 域存储和访问。

所以我的静态站点中有一个 BundleConfig.cs 来创建所有捆绑包:

在主站点中,我有另一个 BundleConfig.cs,我将主站点指向静态内容站点,如下所示:

现在我可以按照我想要的方式使用@Styles.Render("~/bundles/styles")@Scripts.Render("~/bundles/scripts")渲染这样的东西,而且效果很好:

我遇到的问题是,无论是否,内容总是debug=true被缩小和捆绑。即使我BundleTable.EnableOptimization = false在两个 BundleConfig.cs 文件中都使用,@Styles.Render()并且@Scripts.Render()仍然只呈现一个标签并引用被缩小的内容。

我知道主站点不知道捆绑在静态内容站点中的各个文件,但我希望有一些方法可以在主站点的 BundleConfig 中手动指定这些路径,以便 Render() 方法可以当优化关闭时单独列出它们......如果我能让它们关闭,那就是。

0 投票
1 回答
198 浏览

asp.net-mvc - 为什么捆绑包不会捆绑在一台服务器上?

为什么捆绑包会在一台服务器上呈现捆绑和缩小,而不是在另一台服务器上?QA 和 Production 都是相同的操作系统和 IIS 版本,但它们给出不同的结果。在 QA 中,Styles.Render()生成Scripts.Render()捆绑的、缩小的输出。在生产中,他们通常不会(但有时会)。

我的布局中有这条线。

在开发中,我期望并得到这个输出。

在 QA 服务器上,我期望并得到这个。

但在生产中,我通常(但不总是)得到开发输出。

为了尝试重现,我从 QA 中删除了 Web 应用程序并将生产二进制文件和配置部署到 QA,但 QA 仍然给了我预期的输出。我已经在 MVC3 和 MVC4 的多个 Web 应用程序中看到了这一点。

我可以通过将布局中的行更改为此来强制它可靠地缩小和捆绑。

不幸的是,这总是捆绑和缩小,即使在开发中也是如此。

编辑:

调试未在生产和 QAweb.config文件中设置。