问题标签 [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.
asp.net-mvc - 在区域中捆绑虚拟路径
我想创建一个具有以下虚拟路径(插件框架)的样式包:
当我转到该路径时,我收到一条错误消息,指出该文件不存在。静态文件处理程序正在尝试查找文件。我怎样才能使这个工作与捆绑?
asp.net-mvc - 从外部加载 MVC JS 包
我的 MVC 5 项目中有一个小型 JS 库,我希望外部用户可以将其加载到他们的应用程序中。目前我正在像这样捆绑它:
然后我可以通过浏览器在路径上访问捆绑的库/clientApi
。
然而,它总是被缩小,即使我设置了我的 web.config debug=true,并且我自己的应用程序中的其他包被包含为非缩小。
如何使捆绑包中的文件可用作非缩小捆绑包文件?
jquery - 防止 Microsoft 捆绑将“jquery”文件添加到顶部
我已经System.Web.Optimization
成功运行了几个月,一切都很好。
我目前正在将 CKEditor 添加到我的网站,但遇到了问题。
背景:
CKEditor 有它自己的 ckeditor.js 文件。它们还包括一个 jquery“插件”,它允许我们使用 jquery 与它们的对象进行交互。
问题:
我决定创建一个包含这两个文件的单独包,以便在我需要使用它们时包含它们,这样我必须始终包含这两个文件。这是我得到的:
我注意到输出(当debug="true"
)出现故障:
经过一番研究,除了要创建的一些类/函数之外,我什么也没发现,它们会保留顺序——如何指定一个明确的 ScriptBundle 包含顺序?, -- 但是我在本地测试了一些东西,发现其中的所有文件都会jquery
自动放在顶部。
问题:
我想我可以重命名 jquery 文件,但如果有另一种方式,我宁愿不这样做。不仅是为了实用性,我必须记住我将它重命名为将来对 CKEditor 的更新,也是为了我自己的知识(我想尽可能多地知道,不仅是如何,还有什么,为什么,什么时候,你得到了交易)。有没有办法不通过类/函数方法来防止jquery
命名文件跳到顶部?
asp.net - 捆绑启用优化
当我在我的 mvc 项目中为我的 javascript 文件启用 BundleTable.EnableOptimizations 时,它不会加载任何文件。我也没有收到任何错误。它根本不会加载我的任何文件。
这是我的包:
在我看来:
所有文件都存在,因为当我禁用优化时,它又可以正常工作了。
c# - Script.Render(absolute or partial path) 没有禁用编译 debug=true 的捆绑
你们中的任何人都知道为什么Script.Render 在捆绑路径不相对于根文件夹时不禁用捆绑以进行编译 debug ="true"吗?
我正在使用到根目录的相对路径创建捆绑包(此路径类型是强制性的,否则将引发异常):
但是当我尝试渲染它时,我需要提供完整的 url,如下所示:
并且无论编译调试模式如何,都会启用捆绑包。
有什么我想念的想法吗?
我的问题与这个问题非常相关- 我正在以这种方式渲染我的包 - 现在:如何在编译 debug="true" 时禁用它?
有任何想法吗 ?
谢谢!奥维
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?
c# - 单元测试:模拟 BundleTable.Bundles
我正在尝试对创建的自定义助手进行一些单元测试,以呈现捆绑中包含的脚本。
我的问题是我需要为 BundleTable.Bundles对象创建一个模拟,但我没有找到任何相关的方法来实现这一点。
我的方法如下所示:
有什么想法可以实现这一目标吗?
我正在使用犀牛模拟。
asp.net - IItemTransform 和现有的缩小文件
TL;DR:IItemTransform
当缩小文件已存在于与原始(非缩小)文件相同的文件夹中时,不会执行。
问题说明
我遇到这个问题主要是因为 CSS 相关图像引用。如果您使用IItemTransform
Javascript 文件,则同样适用。
这就是我正在使用的:
- 我正在使用带有 Web Essentials 插件的 Visual Studio 来支持 LESS 文件
- 我正在编写 LESS 文件并让 Web Essentials 插件在保存时自动缩小文件
- 我也在我的项目中使用捆绑和缩小
- 在创建 CSS 包时,我
CssRewriteUrlTransform
用来使 CSS URL 成为绝对的(即背景图像),以便在将多个 CSS 文件捆绑在一起后图像仍然可以工作
到目前为止,这里没有什么异常,但它不起作用。
似乎是什么问题?
捆绑和缩小的工作方式是尽量避免过度处理。这意味着当缩小文件与原始文件存在于同一文件夹中时,它不会运行自己的缩小文件,而是提供现有文件。
只要它至少对那些预先存在的缩小文件运行转换,就可以了。但事实并非如此。所以我最终得到了一个捆绑包中的相对 URL,这几乎破坏了所有这些资源。
解决方法
- 始终在 LESS 文件中提供绝对路径
- 在 Web Essentials 设置中禁用保存文件缩小
- 定义我的包时请参考缩小文件,因为它们没有缩小版本(*.min.css 没有 *.min.min.css),所以缩小器实际上会拾取文件并缩小,同时还运行转换它。
从我的开发过程和使用的工具(以及它们的配置方式)的角度来看,这看起来像是一个错误。如果这些文件是同一缩小过程的结果,那么这根本不是一个错误,因为在执行缩小时会执行转换。确实,此类功能不存在,而且可能永远不会存在,因为应用程序需要写入权限才能使其工作。结果:这是一个错误。现有的缩小文件应在缓存之前通过转换进行处理。
问题
是否有可能以某种方式说服捆绑和缩小:
- 不使用现有的缩小文件版本
- 在现有的缩小版本上运行转换
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() 方法可以当优化关闭时单独列出它们......如果我能让它们关闭,那就是。
asp.net-mvc - 为什么捆绑包不会捆绑在一台服务器上?
为什么捆绑包会在一台服务器上呈现捆绑和缩小,而不是在另一台服务器上?QA 和 Production 都是相同的操作系统和 IIS 版本,但它们给出不同的结果。在 QA 中,Styles.Render()
生成Scripts.Render()
捆绑的、缩小的输出。在生产中,他们通常不会(但有时会)。
我的布局中有这条线。
在开发中,我期望并得到这个输出。
在 QA 服务器上,我期望并得到这个。
但在生产中,我通常(但不总是)得到开发输出。
为了尝试重现,我从 QA 中删除了 Web 应用程序并将生产二进制文件和配置部署到 QA,但 QA 仍然给了我预期的输出。我已经在 MVC3 和 MVC4 的多个 Web 应用程序中看到了这一点。
我可以通过将布局中的行更改为此来强制它可靠地缩小和捆绑。
不幸的是,这总是捆绑和缩小,即使在开发中也是如此。
编辑:
调试未在生产和 QAweb.config
文件中设置。