问题标签 [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 投票
2 回答
155 浏览

asp.net-mvc - 样式编译、打包和缩小

几个月来,我一直在学习网站内容优化的各种方法,但是我仍然对这样做的正确方法感到困惑,例如哪个“优化工作流程”会产生什么效果。

ASP.NET MVC通过“ Microsoft.Web.Infrastructure ”包提供了自己的优化框架。有了它,我可以根据请求或应用程序启动时直接在代码中定义捆绑和缩小策略。但是,由于我的样式文件是用less编写的,所以我需要预先编译它们,这可能会减慢整个应用程序的启动过程,所以我觉得在应用程序的构建过程中编译它们可能会更好。但是话又说回来,大多数样式表编译器都允许直接捆绑和最小化,那么为什么不在那里做任何事情呢?

  1. 应用程序编译时应编译LESS文件
  2. 应捆绑CSS文件以减少所需的客户端请求数量
  3. 应最小化CSS文件以减少流量和整体页面内容大小

那么,建议的方法是什么?

  1. 在构建时编译LESS文件(例如 dotless)
  2. 将应用程序部署到服务器
  3. 使用优化捆绑包根据要求捆绑和缩小?

这种捆绑和缩小在 ASP.NET 生命周期中何时发生?在第一次启动 Web 应用程序时?对每一个要求?

0 投票
3 回答
7148 浏览

asp.net - ASP.NET MVC 4 Bundles 给出 404 错误

我想将 Bundle 添加到现有的 ASP.NET MVC 4 (.NET 4.5) 网站中,该网站使用:

我尝试遵循这些指示:https ://gist.github.com/jkarsrud/5143239 ,并且在我开始使用捆绑路径之前,CSS 加载良好。

在页面加载时,它会插入样式参考:

但是会发生 404 错误:

这是我在代码中的内容:

网络配置

全球.asax

全球.asax.cs

_Layout.cshtml

BundleConfig.cs

有任何想法吗?

0 投票
1 回答
564 浏览

asp.net-mvc - 多租户 ASP MVC 应用程序的捆绑

我正在使用 ASP MVC 开发一个多租户应用程序。租户由子域标识。我正在使用 System.Web.Optimization 进行捆绑和缩小以及 BundleTransformer.Less。

UI 可以通过为每个租户应用一组特定的 LESS 变量来设置主题。这些变量存储在数据库中。

根据https://stackoverflow.com/users/1292362/andrey-taritsyn的建议,我实现了一个自定义 VirtualPathProvider 以在需要它们的更少文件中注入更少的变量。这就像一个魅力!

但是,我对如何管理捆绑和缓存有一些疑问。

  1. 我应该抓住每个可能的租户并在 App_Start 上为每个租户注册一个捆绑包吗?(我不喜欢这个选项,因为我应该注册可能永远不会或偶尔使用的捆绑包,我还应该解决为新租户注册新捆绑包而不重新启动的问题)。

  2. 我是否应该注意每个请求,检查租户的捆绑包是否存在,如果不存在,请注册它?

  3. 最佳解决方案是在 App_Start 只声明一次捆绑包,并在对租户子域的第一个请求进入时创建捆绑包响应并将其存储在缓存中。

我目前实施了选项 3,它确实有效,但我不知道里面到底发生了什么。

  • 如何自定义缓存键以识别捆绑包租户?到目前为止,我这样做了:

    • 捆绑包由相同的虚拟路径标识,但是:是否缓存了许多捆绑包响应(特定于租户)?还是只有一个捆绑响应被覆盖?

    • 如何在布局中检索特定于租户的捆绑响应?当我执行 @Styles.Render("~/bundles/css/common") 时会发生什么?是否根据虚拟路径租户识别捆绑响应?

0 投票
1 回答
766 浏览

javascript - 捆绑不适用于 angularJS

我正在开发 ASP.NET Web 窗体应用程序。我在应用程序中添加了一些角度控制器和其他角度功能。现在我需要应用 JS 和 CSS 文件的缩小,我正在尝试通过System.Web.Optimizationdll 在内置捆绑提供程序中使用。angular.js在我的角度代码文件上应用捆绑时出现错误。我不明白是什么导致了错误。

在此处输入图像描述

0 投票
4 回答
4801 浏览

asp.net-mvc - 发布后与 MVC4.5 捆绑不起作用

我试图为我的应用程序捆绑脚本和样式引导程序。我的调试正在运行但是当我发布它时,不要加载脚本和样式。

我添加了一个 BundleConfig (BootstrapBundleConfig)

在 Global 中添加注册

并在 _layout 中设置样式/脚本

但是当发布它,并打开查看页面源

当打开此文件时,第一行出现错误。

我在谷歌搜索并使用了不同的方法,但错误没有解决。

  1. 将所有样式添加到特殊路径(Content/Them/Bootstrap)并使用new StyleBundle("~/content/Them/Bootstrap")

  2. 利用BundleTable.EnableOptimizations = true;

其他..

0 投票
1 回答
257 浏览

.net - 重新编译 System.Web.Optimization 以更改缓存标头

我想重新编译 System.Web.Optimization 以更改 Bundle.cs 中的缓存标头(CDN 不喜欢 Vary 标头),因为似乎没有其他方法可以覆盖标头。我能够反编译源代码(通过 Resharper),进行更改,然后重新编译源代码就好了,但是当我将引用添加到我的项目时,所有依赖的 Nuget 包都会出错。与下面的类似。

'System.Web.Optimization.IBundleBuilder' 类型在未引用的程序集中定义。您必须添加对程序集 'System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 的引用

我宁愿不必编译所有依赖项。我也对覆盖缓存头的其他方法持开放态度。HTTPModules、IIS 等

0 投票
2 回答
772 浏览

css - System.Web.Optimization 捆绑 css js 缓存

我正在使用 System.Web.Optimization 来捆绑 css 和 js 文件。因此,据我了解 System.Web.Optimization 是在客户端缓存 js 和 css 包,并且效果很好。当页面加载 js 和 css 包时,我第一次检查了我在提琴手上的调用,我得到状态 200,下一次它来自客户端浏览器缓存,提琴手中没有 js 和 css 包的条目。但是对于图像,我每次加载页面时都会保持未修改的状态 304。我想浏览器缓存我所有来自 CSS 的图像。有谁知道如何使用捆绑 System.Web.Optimization 来做到这一点?谢谢,阿尔金森

0 投票
1 回答
10865 浏览

c# - 无法加载文件或程序集“System.Web.Optimization”或其依赖项之一

我在 Visual Studio 2013 中的 Asp.net MVC 5 项目存在问题。我的 System.Web.Optimization DLL 版本为 1.1.40211.0,但在项目的引用下它说版本是 1.1.0.0

我不确定如何检查哪些代码正在寻找我没有的版本。

谢谢您的帮助!

下面的错误

0 投票
1 回答
839 浏览

css - 带有 ASP.net MVC 的 LESS CSS 中资源的绝对路径

我知道还有其他问题,但没有我需要的答案。

只需要能够在 MVC 页面中包含的某些 LESS 中强制使用绝对路径,以便正确拾取图像(等)。

它甚至不在一个包中,它只是直接包含在 _Layout.cshtml 中

在 Site_styles.less 我有

但我不能让它是绝对的,即

它呈现为


万一这很重要,其他 LESS [bootstrap 等]这样捆绑在一起

BundleTable.EnableOptimizations = false;

0 投票
1 回答
275 浏览

asp.net - LESS 文件间歇性地不包含在 Bundle 中

在我的 ASP.NET MVC5 项目中,我同时使用了Bundling/ Minification和dotless

LessTransform()来自System.Web.Optimization.Less

我间歇性地看到该header.less文件未包含在捆绑包中。有时会,有时不会,无需任何代码更改。

我已经通过验证器运行了 LESS 文件,但没有发现任何问题。

唯一一次我看到一个文件没有包含在包中是找不到文件,或者存在语法问题。但是,这似乎不适用于这种情况。

此文件未包含在捆绑包中的可能原因有哪些?