问题标签 [bundling-and-minification]

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 回答
7922 浏览

azure - 如何将捆绑和缩小的文件上传到 Windows Azure CDN

我在Microsoft.AspNet.Web.Optimization命名空间中使用 ASP.NET MVC 4 捆绑和缩小功能(例如@Styles.Render("~/content/static/css"))。

我想将它与 Windows Azure CDN 结合使用。

我考虑编写自定义BundleTransform内容,但内容尚未优化。

我还研究了在运行时解析和上传优化的流,但这对我来说就像是一种黑客行为,我不太喜欢它:

如何将捆绑和缩小的版本自动上传到我的 Windows Azure CDN?

0 投票
2 回答
17847 浏览

asp.net - 手动升级后将新的 ASP.NET Web 优化框架添加到 MVC4 项目

使用这些说明手动将 ASP.NET MVC 项目升级到 MVC4 后,您如何在 MVC4 中设置新的 CSS 和 JavaScript 资产捆绑以及 ASP.NET Web 优化框架的最小化功能?默认模板已全部设置好,但是您如何手动完成呢?

0 投票
3 回答
911 浏览

asp.net - 使用 asp.net 优化框架在 Web 应用程序中捆绑脚本文件

我正在使用以下代码来捆绑我的 Web 应用程序脚本,但它不会生成捆绑脚本

我错过了什么?谢谢。

0 投票
15 回答
63904 浏览

asp.net - ASP.NET 捆绑 - 包含的文件更改后捆绑不更新(返回 304 未修改)

我正在尝试 ASP.NET 捆绑与 ASP.NET MVC 4 应用程序。情况是我想做一个 CDN 风格的服务,它有 JS 和 CSS 文件,你可以从其他站点使用这种类型的地址访问它们:http://www.mycdn.com/scripts/plugin/js,其中捆绑并缩小所有包含的 .js 文件。

我的一个文件的捆绑配置如下所示:

但是,当我这样做时,即使我更改了原始 js 文件,捆绑包也没有得到更新。当我刷新浏览器时,我不断收到 304 Not Modified,并且缩小文件的内容没有更新。我怎样才能使包更新,因为旧内容的包是没用的?我尝试了各种方法,但无法找到解决方案。

提前致谢!

0 投票
1 回答
2752 浏览

asp.net-mvc - 如何在 ASP.NET MVC 4、.net 4.5 中包含自定义目录中的 JavaScript 和 CSS?

考虑到这个文件夹结构:

在应用程序中,我想包括style1.cssstyle2.css和。style3.cssstyle4.css

我正在这样做:

_Layout.cshtml我这样渲染它:

仅加载 style1.css 和 style2.css。如何正确加载style3.cssstyle4.css

LE:内容是解决方案中的一个文件夹,该文件夹中的所有文件都添加到解决方案中。

0 投票
2 回答
1111 浏览

asp.net-mvc - 自动捆绑/缩小在 MVC 4 的最终版本中被抛弃了吗?

根据我之前阅读的 Scott Guthrie 的一篇文章Mads Kristensen 发布的视频,我应该能够通过替换以下内容在 ASP.net MVC 4 中自动捆绑/缩小:

有了这个:

我尝试同时针对 .Net 4.0 和 4.5,但似乎没有什么不同。我收到 404 错误,并且链接和脚本标签永远不会指向捆绑的资源。

此功能是否已从最终版本中删除?

我想将此功能用于“主题”。


这就是我最终实施的方式。希望这是有道理的...

0 投票
2 回答
1189 浏览

asp.net-mvc - 与云集成捆绑的建议策略和库

我正在优化我的 ASP.net MVC 4 网站。我目前正在使用运行时捆绑来组合和缩小我的 JavaScript 和 CSS 内容。我想在创建时自动将缩小的内容发布到 CDN(特别是 Amazon Cloudfront)。

我正在尝试确定将捆绑文件与 CDN 集成的最佳策略。我的具体问题是:

  • 是否有任何可用的库允许将捆绑的文件保存到 CDN 而不是我的本地 Web 服务器?
  • 静态文件应该在捆绑之前从 CDN 中提取,还是应该在捆绑之前从本地 Web 服务器中提取?
  • 是否有任何机制可以仅从我的网络农场(而不是公众)启用 CDN 写入控制?
0 投票
1 回答
500 浏览

asp.net-mvc-4 - 使用 RTM 调试 MVC4 捆绑

所以我用 rtm 位完成了一个新的 mvc4 应用程序的开发。

我部署到产品服务器上,除了样式之外,一切都运行良好。捆绑包出了点问题,我认为它是订购问题或某些未随捆绑包呈现的文件。

如何调试捆绑包发生的事情以知道出了什么问题?回到我的开发环境中,如果我在 web.config 中切换 debug=false,我可以复制我在 prod 中遇到的问题,因此该环境没有问题。

谢谢!!

更新。如果我通过 BundleTable.EnableOptimizations = false 关闭启用优化;prod 上的网站工作正常,但当然没有缩小。

0 投票
6 回答
64287 浏览

c# - 如何强制 BundleCollection 在 MVC4 中刷新缓存的脚本包

... 或者我是如何学会停止担心的,而只是针对来自 Microsoft 的完全未记录的 API 编写代码。有官方System.Web.Optimization发布的任何实际文档吗?'因为我肯定找不到,没有 XML 文档,所有博客文章都引用了 RC API,这有很大不同。随便吧。。

我正在编写一些代码来自动解析 javascript 依赖项,并从这些依赖项中动态创建包。一切都很好,除非您编辑脚本或以其他方式做出会影响捆绑包的更改而不重新启动应用程序,否则这些更改将不会被反映。所以我添加了一个选项来禁用开发中使用的依赖项缓存。

但是,即使捆绑集合已更改,显然也会BundleTables缓存 URL 。例如,在我自己的代码中,当我想重新创建一个包时,我会执行以下操作:

每当我删除并重新创建具有相同别名的包时,绝对不会发生任何事情:bundleUrl返回ResolveBundleUrl的结果与我删除并重新创建包之前相同。“相同”是指内容哈希未更改以反映捆绑包的新内容。

编辑......实际上,它比这更糟糕。捆绑包本身以某种方式缓存在集合Bundles之外。如果我只是生成自己的随机散列以防止浏览器缓存脚本,ASP.NET 会返回旧脚本。因此,显然,从中删除捆绑包BundleTable.Bundles实际上并没有做任何事情。

我可以简单地更改别名来解决这个问题,这对于开发来说是可以的,但我不喜欢这个想法,因为这意味着我必须在每次页面加载后弃用别名,或者让 BundleCollection 的大小在每个页面加载。如果您将其留在生产环境中,那将是一场灾难。

因此,似乎在提供脚本时,它会独立于实际BundleTables.Bundles对象进行缓存。因此,如果您重用一个 URL,即使您在重用它之前删除了它引用的包,它也会响应缓存中的任何内容,并且更改Bundles对象不会刷新缓存 - 因此只有项目(或相反,具有不同名称的新项目)将永远被使用。

这种行为似乎很奇怪......从集合中删除某些内容应该将其从缓存中删除。但事实并非如此。必须有一种方法来刷新此缓存并让它使用当前的内容,BundleCollection而不是在首次访问该捆绑包时缓存的内容。

知道我会怎么做吗?

有一种ResetAll方法的目的未知,但无论如何它都会破坏事物,所以不是这样。

0 投票
1 回答
2373 浏览

asp.net-mvc - 如何在Require.js中引用捆绑的js文件(asp.net mvc4)?

我一直在学习约翰·帕帕关于 SPA 的复数课程。

在他的main.js中,他为包中包含的每个 js 库命名。

但是root这里是什么?


通过这样做,我们可以在define语句中调用这些短名称:

目前,我不知道该怎么做。所以我的工作define声明很丑:

我知道一定有更好的方法。所有这些 js 文件都已包含在脚本包中。如何引用这些脚本?