我正在使用Google PageSpeed和YSlow测试我的网站,而我使用MVC4捆绑包创建的捆绑包没有获得
Gzip(用gzip或deflate压缩资源可以减少通过网络发送的字节数)并且没有
Vary:Accept-Encoding标头(指示代理服务器缓存两个版本的资源:一个压缩,一个未压缩.这有助于避免公共代理无法正确检测到Content-Encoding标头的问题.)
以及如何在ISS上为整个脚本文件夹添加编码头.我知道有HTTP响应标头,然后添加自定义HTTP响应标头,

但是这将在整个脚本文件夹和子文件夹中工作,以及在名称和值字段中放置什么.
怎么能解决这个问题.
问候.
我正在使用Asp.Net MVC 4和内置的捆绑支持.在BundleConfig.cs中,我在RegisterBundles方法中添加了默认的jquery:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
Run Code Online (Sandbox Code Playgroud)
我也有两个jquery-1.8.0.js并jquery-1.8.0.min.js包含在我的项目中.
调试时一切正常,但是当我设置debug="false"测试捆绑时,它似乎正在缩小默认的jquery文件而不是使用已经存在的缩小版本.当我在项目中查看jquery的'min'版本时,它在顶部包含一个小注释,第一个方法定义是function(a,b).当我在浏览器中查看输出时,注释丢失,第一个方法定义不同.
有没有人见过这个问题?如何让捆绑机制使用现有的.min文件而不是重新缩小?
在MVC3 C#中,我正在尝试新的System.Web.Optimization Bundles JSminify和CssMinify包(.NET 4.5框架的一部分).
我有一个主要的捆绑.在我的网站的一个页面上,我希望仅为该页面包含一个.js文件.我想像捆绑一样缩小它,但它不需要捆绑.
如何才能做到这一点?
asp.net bundle asp.net-mvc-3 asp.net-4.5 asp.net-optimization
我开始使用.NET 4.5内置的缩小和捆绑来缩小和捆绑我的CSS和JavaScript.JavaScript缩小效果很好,然而,我在CSS缩小时遇到了麻烦.我使用下面的代码创建一个样式包 -
var myCss = new string[]
{
"~/Content/jquery.css",
"~/Content/app.css",
};
bundles.Add(new StyleBundle("~/bundles/MySiteCss/").Include(myCss ));
Run Code Online (Sandbox Code Playgroud)
然后我在.cshtml(razor文件)中引用它们,如下所示 -
@Styles.Render("~/bundles/MySiteCss/")
Run Code Online (Sandbox Code Playgroud)
它缩小了CSS文件.但是,如果CSS文件包含具有背景图像引用的样式,例如background-image:url('img/icon.png'),它会尝试从新位置加载此图标文件(从包名称派生) = /bundles/MySiteCss/img/icon.png
由于该位置中不存在该图标,因此不会加载并显示在页面上.
asp.net asp.net-mvc minify bundling-and-minification asp.net-optimization
我正在尝试使用ASP.Nets BundleTable来优化一些javascript文件,但是遇到了一个问题,当代码被缩小时,特定的插件(jQuery-Timepicker)无法工作.看到这里.
捆绑代码目前类似于:
// Add our commonBundle
var commonBundle= new Bundle("~/CommonJS" + culture.ToString());
// JQuery and related entries.
commonBundle.Include("~/Scripts/jquery-1.7.2.js");
commonBundle.Include("~/Scripts/jquery-ui-1.8.22.js");
commonBundle.Include("~/Scripts/jquery.cookie.js");
commonBundle.Include("~/Scripts/jquery-ui/jquery-ui-timepicker-addon.js"); // This is the one that does not work when bundled
// JS Transformer
commonBundle.Transforms.Add(new JsMinify());
BundleTable.Bundles.Add(commonBundle);
Run Code Online (Sandbox Code Playgroud)
如果我删除该jquery-ui-timepicker-addon.js文件,然后将其单独包含在我的网页中,那么它可以正常工作.(否则我得到Uncaught TypeError: undefined is not a function错误).
我想知道我是否能以某种方式设置我的捆绑代码以跳过缩小这个文件(但仍然包含在捆绑中)?我一直在环顾四周,但没有提出任何解决方案.
bundle asp.net-mvc-3 asp.net-mvc-4 asp.net-optimization system.web.optimization
是否有一个内置的方法来跟踪是否已经加载了一个包?我有几个编辑视图,例如需要jquery和jquery.Validate等库.我不需要在主布局页面上引用它.由于页面可能包含几个不同的条件库...理想情况下我希望@ scripts.Render知道我是否已经引用了一个库并阻止了它的重新加载.
干杯蒂姆
asp.net-mvc jquery asp.net-mvc-4 bundling-and-minification asp.net-optimization
我有一个asp.net MVC4 Web应用程序,它使用样式捆绑主题.我有一个像这样的物理主题文件夹结构......
Themes\
_Base\
Theme1\
Theme2\
...\
Run Code Online (Sandbox Code Playgroud)
每个主题文件夹中都包含任意数量的LESS文件.在我的BundleConfig.RegisterBundles方法中,我有一些逻辑循环每个主题文件夹并为每个创建一个包.System.Web.Optimization的捆绑机制将监视现有捆绑包中的文件和文件夹中的更改并刷新捆绑缓存,这样可以正常工作.
但是,我需要的是将新主题文件夹(即Theme3\)复制到我的Themes根文件夹中的方法,以及应用程序在不必先重新启动它的情况下识别它们.我试过创建一个引用每个文件夹中所有文件的"虚拟"包...
var changeTracking = new StyleBundle(BUNDLE_ROOT);
changeTracking.Transforms.Clear();
changeTracking.IncludeDirectory(THEME_ROOT, "*.less", true);
changeTracking.Transforms.Add(new LessTransform());
changeTracking.Transforms.Add(new CssMinify());
bundles.Add(changeTracking);
Run Code Online (Sandbox Code Playgroud)
......但这似乎没有帮助.当我做的时候Theme3\,它不会触发另一次调用BundleConfig.RegisterBundles.我仍然需要执行IISRESET,回收应用程序池等,以便识别新主题.
有没有什么办法可以在Application_Start发生后动态添加包?
asp.net asp.net-mvc-4 bundling-and-minification asp.net-optimization
是否可以捆绑一组脚本而不缩小它们?我只想结合几个第三方脚本文件,我从不需要非缩小版本.其中一些人警告不要再进一步缩小.
我有一个新的ASP.NET MVC5项目.我不想使用Microsoft捆绑和缩小,所以我删除了nuget包和我也不想要的依赖项.
我确保配置中没有任何内容,我清除了\ Temp\Temporary ASP.NET Files\
我使用VS2013/IIExpress并没有什么引用System.Web.Optimization在aspnet.config或对ApplicationHost.config
...解决方案构建正常,但当我运行它抛出:
编译器错误消息:CS0234:命名空间"System.Web"中不存在类型或命名空间名称"优化"(您是否缺少程序集引用?)
某个地方的东西试图拉入dll,但这不是我的代码.看起来很奇怪!
Line 26: using System.Web.Optimization;
Run Code Online (Sandbox Code Playgroud)
当然它不是MVC5本身的参考.有人见过这个吗?
当我搜索"命名空间"时,我才在Views文件夹中找到它,不知道我是如何错过它的.我甚至不知道Views文件夹中有配置文件.
我在.NET 4.6上运行Sitecore 8(Update 5),并且遇到了Bundles返回404错误的问题.
我的布局视图:
@using Sitecore.Mvc.Presentation
@using Sitecore.Mvc
@model RenderingModel
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@Model.Item.Fields["Title"]</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
</head>
<body>
<h1>@Html.Sitecore().Field("Title")</h1>
@Html.Sitecore().Placeholder("content")
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js" type="text/javascript" defer="defer"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\" defer=\"defer\"></script>", "~/bundles/scripts/footer")
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的/Global.asax.cs文件:
using System.Web.Mvc;
using System.Web.Optimization;
using Glass.Mapper.Sc;
namespace Sitecore.Web
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_BeginRequest()
{
Sitecore.Context.Items["Disable"] = new VersionCountDisabler();
} …Run Code Online (Sandbox Code Playgroud) asp.net ×4
asp.net-mvc ×3
bundle ×3
asp.net-4.5 ×1
gzip ×1
jquery ×1
minify ×1
sitecore ×1
sitecore-mvc ×1
sitecore8 ×1