问题标签 [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 回答
1279 浏览

razor - System.Web.Optimization 不能在类库项目中的剃刀视图文件中使用

我在一个模块化的 asp.net mvc4 项目中工作。一些视图位于类库项目中。我已经设置了 web.config 以启用剃刀视图中的智能。@model,@Html。*和其他都运行良好。但是当我尝试使用@Scripts.Render() 在我的视图中引用一个 js 文件时。它说找不到“脚本”。我检查了 web.config 文件。System.Web.Optimization 位于 // 节点中。我还安装了 Nuget 的 Microsoft.AspNet.Web.Optimization 包。

我尝试在 .cs 文件中键入代码以使用 System.Web.Optimization 成员,它可以工作。但我不能在 .cshtml 文件中做同样的事情。即使我输入@using System.Web.Optimization,它也会提示我找不到优化。

我不确定我还能做些什么来解决这个问题。任何线索都非常感谢。

0 投票
2 回答
2198 浏览

javascript - 我正在尝试使用 mvc4 捆绑功能缩小 javascript 文件

我想捆绑我所有的 JavaScript 文件,所以它应该只访问服务器一次。但有了这个,我面临一个问题。

我收到未定义 jquery 的错误,但我在包的顶部包含了 jquery。

我该如何解决这个问题?

0 投票
1 回答
165 浏览

asp.net-mvc-4 - mvc 4 捆绑是否需要 js 文件上的数字才能使用 -{version}?

我一直在努力让我的包在运行时以发布模式解析我的 .js 文件,即使用 <compilation debug="false" targetFramework="4.0" />。

几个小时后,我偶然将 .js 文件的名称更改为带有数字的文件名。这现在有效。但我找不到任何文件!有什么解释吗?

这是我的捆绑代码,最后两个文件是我的:

当文件名为 ~/Scripts/tp.js、~/Scripts/tpmodel.js、~/Scripts/tp.min.js、~/Scripts/tpmodel.min.js 时,这不会渲染脚本

但是当文件名是

~/Scripts/tp-1.0.0.js、~/Scripts/tpmodel-1.0.0.js、~/Scripts/tp.min-1.0.0.js、~/Scripts/tpmodel-1.0.0.min。 js

(不同之处在于在文件名中添加了 -1.0.0)。

0 投票
1 回答
1368 浏览

javascript - ASP.NET MVC4 Web 优化不会缩小或在 vanilla Internet 应用程序上添加缓存破坏器

我正在考虑使用网络优化来缩小和捆绑 js 和 css,所以我在 Visual Studio 中启动了一个新的 vanilla mvc4 互联网应用程序,设置 RELEASE 模式并点击 F5。

它的行为似乎不像我预期的那样。当我查看源代码时,我看到了。

我期待看到一个缓存破坏者?v=kjzshd3289sjhdf98je3l。

脚本和 css 也没有缩小。

0 投票
1 回答
1888 浏览

c# - BundleTransformer.Less 根据上下文/请求注入变量

我们希望将捆绑机制System.Web.Optimization与 Less 转换器结合使用。

问题是同一个应用程序/服务器为不同品牌的网站提供页面。因此,根据“SiteContext”,使用相同的 .less 文件,但 .less 变量应使用不同的值。因此,我们希望(重新)使用相同的更少文件,但根据请求的上下文使用不同的变量。

我尝试了几种不同的理论:

在所有 3 种情况下,我根据 SiteContext 设置不同的捆绑包。

1 通过使用拦截 variables.less 文件的自定义 VirtualPathProvider注入带有主题变量的 @import 指令。

所以我有:

  • 样式文件,例如:header.less(导入变量文件)
  • 变量文件:variables.less
  • 一个主题变量文件:variables-theme.less(通过 VirtualPathProvider 注入 variables.less)

这不起作用,因为 BundleTransformer 缓存将此视为同一个文件并且不知道 SiteContext。缓存键是基于 URL 的IAsset,我们不能影响这种行为。

2 用variables-themed.less替换 variables.less 导入,使用在 Less 转换器之前运行的自定义转换器。

再次没有运气,同样的缓存问题。

并且作为副作用,额外的转换器没有在调试中调用,因为资产没有捆绑,而是由LessAssetHandler. 这可以通过编写您自己的调用所有必需转换器的 AssetHandler 来解决。

3 创建由自定义 VirtualPathProvider解析的主题资产名称, 例如。将 header-themeX.less 添加到包中,此文件不存在,但您将此文件解析为 header.less 并使用方法 2 设置正确的变量文件导入。(将 variables.less 的导入替换为主题版本)。

再次没有运气。我认为这可以解决缓存问题,如果它不是在内部进行Bundle.Include(string virtualPath)File.Exists(path)。它不通过CustomVirtualPathProvider.


我想深入解决这个问题吗?欢迎所有想法,我可以想象随着System.Web.Optimization图书馆越来越受欢迎,这将成为越来越多的人的问题......

请记住:

  • 我们有很多 .less/css 文件
  • 我们将有5个左右的主题
  • 我们喜欢在 Visual Studio 中保持工作(这就是为什么 header.less 有一个对 variables.less 的引用)

感谢您的任何反馈。

0 投票
1 回答
2334 浏览

visual-studio-2012 - 将 System.Web.Optimization 添加到 VS2012 项目

我今天下载了 VS2012 Express for Web 只是为了弄乱它。做了一个在 ASP.Net 网站上的教程。然后我决定开始我自己的项目并从一个空站点开始。通过这种方式,我可以了解添加某些内容的方式/原因以及它们的作用。尝试添加时:

我遇到了未定义捆绑包的问题,​​这意味着我需要添加对 System.Web.Optimization 的引用。但是,当我去添加参考时,它不在列表中。当我在我所做的教程中“添加”一个参考时,它也不在那个列表中。如何将 System.Web.Optimization 添加到您的项目中?它显然已安装在我的机器上,因为我在其他应用程序中使用了它,但我不必添加它(在创建项目时完成)。为本教程创建的项目来自 ASP.Net MVC 4 模板(Internet 应用程序)。当我开始我自己的时候,我仍然使用 ASP.Net MVC 4 模板,但是用 Empty 代替。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
644 浏览

c# - 有没有办法从代码隐藏中读取 System.Web.Optimization 内容?

有没有办法从代码隐藏中读取 System.Web.Optimization 内容?我尝试查看 dll,但找不到读取包内容的方法(据我所知,它是通过处理程序工作的,该处理程序处理对包的调用。

我的意图是使用 sass,由于转换(在缩小之上)会导致更重的处理,并将其生成为文件,然后将其提供给最终用户。我通过使用 WebRequest 读取文件并保存响应找到了一种解决方案,但它对我来说只是感觉有点骇人听闻。

0 投票
0 回答
897 浏览

asp.net-mvc-4 - 为什么 div 背景图像不能与缩小的 CSS 一起使用?

我使用 MVC4 并缩小我的 CSS 文件,但是具有背景图像的 div 标签在发布模式下没有显示图像。当我用萤火虫检查页面时,它说“加载图像失败......”

它在调试模式下工作,但不在发布模式下。

我的 div 背景图片有什么问题?

我项目的物理路径是“\Content\themes\default\images\”,CSS 如下所示:

我测试了以下内容:

它可以工作,但是如果您创建一个示例 MVC4 互联网应用程序并查看它的 CSS,则图像地址是:

为什么这对我不起作用?

0 投票
1 回答
3358 浏览

c# - 您可以预缓存 ASP.NET 捆绑包吗?

每次我部署 MVC Web 应用程序时,我的服务器都必须重新缓存所有 js 和 css 包。

因此,部署后第一个视图可能需要几秒钟才能呈现。

有没有办法预先缓存捆绑包?毕竟,文件在编译时是静态的。

0 投票
0 回答
170 浏览

asp.net - 过滤器时 ASP.NET css 缩小失败:使用 progid:DXImageTransform.Microsoft.AlphaImageLoader

我正在缩小一堆 css 文件,其中一个包含

作为 IE6 的 png-transparency 修复,它会导致缩小过程失败。这个问题有什么解决方法吗?

谢谢!