问题标签 [asp.net-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 投票
3 回答
54359 浏览

c# - MVC4 Bundle 中的 {version} 通配符

在 MVC 4 中,我们有捆绑包。在定义捆绑包时,我们可以对文件夹中的所有文件使用通配符,例如 *。

在下面的示例中是什么-{version}意思?

0 投票
8 回答
22791 浏览

asp.net-mvc - 使 ASP.NET 捆绑为 CSS 捆绑指定 media=screen

我只是在尝试 ASP.NET 4.5 捆绑和缩小,但遇到了问题。

我有大约 10 个 css 文件,其中 2 个最初是在布局中使用属性 media="screen" 引用的。

由于将 css 添加到包的语法不允许您指定应添加此类属性(这是有道理的,因为该属性将适用于整个包),我希望看到 @Styles.Render 的重载允许我指定 html 属性,就像在其他 Html 帮助程序中一样,但没有。

有一个丑陋的解决方案,因为我知道创建的包的 url,我可以自己制作标签,但我会失去由 ASP.NET 处理的缓存机制,因为它允许它自己呈现标签。

有没有办法做到这一点,我错过了什么?或者这只是设计团队的疏忽?

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 投票
1 回答
3119 浏览

javascript - 从 Document.ready 中的包执行 javascript

我使用 MVC4 默认模板。

我添加了一个脚本:MyScript.js/Scripts/MyApp/ 一个函数中:

在 global.asax 中:

我想调用这个方法/Views/Home/Index.cshml

我尝试了下面的代码但没有成功:

当我查看源代码时,链接就MyScript.js在那里,我可以导航到它(转到源代码)

但是没有执行Testing()中的方法 。$(document).ready

更新1

0 投票
11 回答
95705 浏览

asp.net-mvc - ASP.NET MVC 框架 4.5 CSS 包在主机上不起作用

我正在用 MVC4 编写的应用程序港口上运行一个应用程序。

一堆 css 文件不起作用。在调试模式下的本地计算机中,我看到了应用程序的代码,并看到了文件。该应用程序按预期工作。

当我将应用程序上传到 Appharbor 时,我在代码中看到了捆绑包,但应用程序不起作用。

href当我在我得到403 - Forbidden: Access is denied中浏览该链接时。

如何解决这个问题?

0 投票
2 回答
17847 浏览

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

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

0 投票
1 回答
2065 浏览

asp.net - Visual Studio 2012 ASP.NET 捆绑中途失败

我正在尝试设置 VS 2012 的新捆绑功能(通过 Microsoft.Web.Optimization 包 -在此处阅读更多内容),并且在大多数情况下,一切正常。问题是处理在大约 15000 个字符后就放弃了。

当我构建和运行页面时,我遇到了一堆失败,因为已加载的 JavaScript 文件在函数中间的一行中被截断......

有没有其他人经历过这种情况,或者有没有人对如何解决这个问题有任何见解?

- 更新 -

我最初使用foo.AddDirectory("~/scripts/", "*.js"). 当我包含任何 jquery 插件时,仅使用foo.AddFile("~/scripts/bar.js")会导致 javascript 错误。服务器上没有抛出任何错误。

--更新2--

问题是由于 Web 优化库不是最新的。我强烈建议任何尝试使用它的人通过 NuGet 命令行检索库:Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization. 网上有各种版本的文档和示例,但可以使用上述方法找到最新的文档,最新的文档是在下面的答案中找到的。

0 投票
3 回答
3568 浏览

.net - 我在哪里可以找到 System.Web.Optimization 的源代码?

我试图弄清楚为什么当我创建一个引用主站点应用程序文件夹下 IIS VirtualDirectory 中的文件的脚本包时,为什么它不会输出任何内容。

我找到了这篇文章:

为什么 ResolveBundleUrl 不适用于自定义文件夹?(MVC 测试版 4)

但它似乎不再适用于 System.Web.Optimization 的最新 beta 版本。

0 投票
2 回答
3938 浏览

.net - 如何让 System.Web.Optimization 包与 IIS 虚拟目录中的自定义文件夹一起使用?

我有一个 asp.net mvc4。我有使用 IIS 虚拟目录在此应用程序中部署为子目录的模块,我需要引用这些模块中的文件。这些模块 dll 正在注册捆绑包。但是捆绑包不会在 html 页面中生成任何内容。

从这篇文章is-it-possible-to-unit-test-bundleconfig-in-mvc4 中,我看到包在内部使用 Server.MapPath。所以它似乎应该工作。

我挂钩了 BundleTable.MapPathMethod,甚至自己调用了 Server.MapPath,它确实正确解析到正确的物理目录。但它仍然不会在 html 页面中呈现任何内容。

然后有这篇文章,为什么-does-resolvebundleurl-not-work-for-custom-folders,提到了自定义文件夹的“AddDirectory”功能,但是这个功能在最新的优化库中不再可用。

我也尝试过使用新的“IncludeDirectory”方法,但这也不起作用

还有什么我可以尝试的吗?


2012 年 8 月 27 日

问题解答:基本上 System.Web.Optimization 不适用于作为子 IIS 虚拟目录的 web url。

问题是 BundleResolver.GetBundleContents 中的这些代码行

这基本上假设每个被捆绑的文件都将位于主 Web 应用程序 PHYSICAL 文件夹下的 PHYSICAL 文件夹中。

IMO 的问题在于,正在搜索要包含的文件的 Web 相对 url 路径很早就被转换为物理路径,并且所有对用于获取这些物理文件的相对 url 路径的引用都被丢弃了。

所以,为了看看我能不能完成这项工作,我必须将 System.Web.Optimization 反编译为裸代码,然后再次重新编译,这样我才能“修复”它。第一步是向 BundleItem 添加一个 RelativePath 属性,这是一个额外的 BundleItem 构造函数,用于传递源相对 url 路径以保留 Web 相对搜索目录文件夹的内容。然后我用循环替换了上面的代码,然后基本上尝试用它们的 BundleItem 重新匹配找到的文件,以便可以将它们转换回有效的 web url

现在我的包正在正确渲染。但是请注意,我尚未测试此 hack 修复程序的发布或优化或缩小。

我真的认为 asp.net 团队应该让 System.Web.Optimizations 支持 IIS 虚拟目录中的文件。尤其是现在 VS2012 支持 IIS Express,这最终将使构建模块化 Web 应用程序变得更加容易,文件通过 IIS 虚拟目录引用

0 投票
3 回答
911 浏览

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

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

我错过了什么?谢谢。