标签: asp.net-optimization

如何申请自定义捆绑订单?

我正在使用新的ASP.NET捆绑功能,似乎无法让我的自定义订单工作.这是我的JS文件:

bootstrap.js
bootstrap.min.js
jquery-1.7.2.intellisense.js
jquery-1.7.2.js
jquery-1.7.2.min.js
jquery-ui-1.8.19.js
jquery-ui-1.8.19.min.js
jquery.unobtrusive-ajax.js
jquery.unobtrusive-ajax.min.js
Run Code Online (Sandbox Code Playgroud)

我想捆绑器在所有jQuery文件之前输出boostrap*.js.我理解在内部捆绑器会在顶部对jQuery文件进行排序,所以我试图覆盖逻辑但没有成功:

var bootstrapOrdering = new BundleFileSetOrdering("bootstrap");            
bootstrapOrdering.Files.Add("bootstrap*.js");            
bootstrapOrdering.Files.Add("jquery*.js");
BundleTable.Bundles.FileSetOrderList.Add(bootstrapOrdering);
Run Code Online (Sandbox Code Playgroud)

注意:如果可能的话,我更愿意使用通配符来覆盖所有情况而不指定代码中的所有文件.

有谁知道我可以申请定制订单?

谢谢

asp.net jquery bundle minify asp.net-optimization

5
推荐指数
1
解决办法
1597
查看次数

mvc4捆绑强类型捆绑

所以MVC 4引入了脚本和样式捆绑.这允许:

public static void RegisterBundles(BundleCollection bundles)
    {
    bundles.Add(new ScriptBundle("~/bundles/mobile").Include(
                    "~/Scripts/jquery.mobile-*"));
Run Code Online (Sandbox Code Playgroud)

然后在这样的剃刀视图中使用:

@Scripts.Render("~/bundles/mobile")
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我要输入"~/bundles/mobile"?是否有办法让intellisence有一个强类型对象来接收?否则我必须去查找以确保我称之为同样的事情.

我想做这样的事情:(我知道这不会以这种方式编译,这只是一个例子)

public static void RegisterBundles(BundleCollection bundles)
    {
    Bundle mobile = new Bundle("mobile");
    mobile.AddFile("w/e")
    bundles.Add(mobile);

//in page:
 @Scripts.Render(BundleConfig.mobile)
Run Code Online (Sandbox Code Playgroud)

或那些影响的东西.

编辑:答案很简单.正如@Hao Kung指出的@Styles.Render只是需要一个URL字符串路径.我创建了一个类来保存.

public class bundles
{
    #region Javascript
    public static string scripts = "~/bundles/scripts";
    ...
    #endregion

    #region CSS

    public static string css = "~/Content/css";
    public static string jqueryUi = "~/Content/themes/base/css";
    ...
    #endregion
}
Run Code Online (Sandbox Code Playgroud)

在任何页面,你只需要做

@Styles.Render(bundles.jqueryUi)
Run Code Online (Sandbox Code Playgroud)

你有它.你需要付出额外的努力,但至少它现在是强力打字的.

strong-typing asp.net-mvc-4 bundling-and-minification asp.net-optimization

5
推荐指数
1
解决办法
4089
查看次数

Visual Studio和Knockout.js - 捆绑,缩小和约定

我正在使用ASP.NET MVC4和Visual Studio进行捆绑和缩小.

惯例说:

  • 当存在"FileX.min.js"和"FileX.js"时,选择".min"文件进行发布.
  • 选择非".min"版本进行调试.
  • 忽略仅由IntelliSense使用的"-vsdoc"文件(例如jquery-1.6.2-vsdoc.js).

问题是debug.js扩展也完全被忽略了,当我通过NuGet使用knockout和knockout映射时,这些扩展都带有这些扩展.所以即使在调试模式下我总是得到缩小版本?

我可以将文件从.debug.js重命名为.min.js以获得调试模式下的非缩小版本,但是不会通过nuget中断更新功能吗?

是否有.debug.js文件的解决方案?

asp.net visual-studio asp.net-mvc-4 asp.net-optimization

5
推荐指数
1
解决办法
1189
查看次数

在ASP.NET MVC 4中使用Scripts.Render时,在"script"标记中生成"type"属性

是否可以在ASP.NET MVC 4中配置Scripts.Render以在"script"标记中生成"type"属性?

如果是这样,怎么样?

提前致谢,

瑞安

asp.net asp.net-mvc bundling-and-minification asp.net-optimization

5
推荐指数
1
解决办法
1563
查看次数

如何在asp.net webforms捆绑中将cdN添加到bundle.config

我正在使用asp.net捆绑/缩小并将所有内容放在bundle.config中,如下所示:

<styleBundle path="~/css/css">
  <include path="~/css/bootstrap.css" />
  <include path="~/css/flexslider.css" />
  <include path="~/css/font-awesome.css" />
  <include path="~/css/Site.css" />
  <include path="~/css/orange.css" />
</styleBundle>
Run Code Online (Sandbox Code Playgroud)

但是我想从CDN使用bootstrap.css:

//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css
Run Code Online (Sandbox Code Playgroud)

那么我们怎么能在bundle.config中做到这一点呢?

asp.net bundling-and-minification asp.net-optimization

5
推荐指数
1
解决办法
6492
查看次数

使用ASP.NET Web Optimization和BundleTransformer来正确使用IItemTransform来纠正CSS捆绑中的路径是什么?

我目前正在开发一个项目,该项目使用ASP.NET Web Optimization库(v 1.1.0-Beta1)和Bundle Transformer扩展(v 1.7.3-Beta1用于核心,1.7.0-Beta1用于LESS)用于将LESS转换为CSS.基于Web搜索,CSS(及更少)中的路径似乎是一个常见问题,在大多数情况下,建议手动修改CSS并完成它.但是,由于我们的开发和生产环境之间的差异,并且没有拥有受影响的CSS,这样的解决方案是不可行的.

似乎存在两种解决方案.第一种是将捆绑定义的虚拟目录覆盖在包含内容的实际目录上.对我来说,这似乎是一个糟糕的选择.

其次,我选择的路线是使用IItemTransform这样的CssRewriteUrlTransform(在这篇文章中提到.即使这个解决方案也有它的局限性.因此我试图编写自己的ItemTransformer但是看起来它的执行结果被忽略了以下列方式使用时:

public static void RegisterBundles(BundleCollection bundles)
{
    /* among other work pass in IItemTransformer to fix paths */
    var styleBundle = new StyleBundle("~/bundles/css/styles")
        .Include(...)
        .Include("~/Content/less/font-awesome.less", new RewriteUrlTransform())
        .Include(...);

    styleBundle.Transforms.Add(new CssTransformer());
    styleBundle.Orderer = new NullOrderer();

    bundles.Add(styleBundle);
}
Run Code Online (Sandbox Code Playgroud)

IItemTransform的实现:

public class RewriteUrlTransform : IItemTransform
{
    public string Process(string includedVirtualPath, string input)
    {
        return (input manipulated with proper path replacing …
Run Code Online (Sandbox Code Playgroud)

web-optimization asp.net-mvc-4 bundling-and-minification asp.net-optimization bundletransformer

5
推荐指数
1
解决办法
4101
查看次数

bundle(Sytem.Web.Optimization)如何为bundle-links生成构建指纹?

在MVC-4中,用于压缩CSS和Js文件的包可以使用此Razor语法链接到布局文件中: @Scripts.Render("~/JavaScripts")

这会在布局文件中生成一个链接,其中包含指纹,该指纹在每个应用程序构建时重新生成,以协助缓存控制.

所以生成的链接如下所示:

<script src="/JavaScripts?v=dSMc_JTHMMP5GrWnILSYt_QBMw-g1pPlzknSorXpkyQ1"></script>
Run Code Online (Sandbox Code Playgroud)

我想知道指纹是如何生成的(用于类似目的),但Sytem.Web.Optimization尚未开源.

asp.net-mvc-4 asp.net-optimization

5
推荐指数
1
解决办法
1143
查看次数

"找到的程序集的清单定义与nuget包上的程序集引用不匹配"

所以我一直在System.Web.Optimization包上得到这个错误

无法加载文件或程序集"System.Web.Optimization"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

asp.net web-optimization nuget asp.net-optimization

5
推荐指数
1
解决办法
1万
查看次数

自动捆绑/缩小是否已归入MVC 4的最终版本?

根据Scott Guthrie早些时候读过一篇文章Mads Kristensen发布视频,我应该能够通过替换它来自动捆绑/缩小ASP.net MVC 4:

<link href="Styles/reset.css" rel="stylesheet" type="text/css" />
<link href="Styles/normalize.css" rel="stylesheet" type="text/css" />
<link href="Styles/styles.css" rel="stylesheet" type="text/css" />

<script src="Scripts/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-validation.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

有了这个:

<link href="Styles/css" rel="stylesheet" type="text/css" />

<script src="Scripts/js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我尝试过针对.Net 4.0和4.5,它似乎没有什么区别.我收到404错误,链接和脚本标记从不指向捆绑的资源.

这个功能是否从最终版本中删除了?

我想将此功能用于"主题".


这就是我最终实现的方式.希望它有意义......

 /// <summary>
 /// Render stylesheets HTML for the given theme. Utilizes System.Web.Optimization for bundling and minification
 /// </summary>
 /// <param name="themeName">Name of theme</param>
 /// <returns>HtmlString containing link elements</returns>
 public static IHtmlString RenderThemeStyles(string …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-4 bundling-and-minification asp.net-optimization

4
推荐指数
2
解决办法
1103
查看次数

ASP.NET 优化不会将 LESS 转换为 CSS

我很难使用 .NET 的新优化框架(用于缩小和捆绑)将 LESS 文件转换为 CSS。

我有一个只包含 LESS 文件的目录。

我使用以下代码将它们捆绑在一起并将它们转换为 CSS:

var lessBundle = new Bundle("~/st-style-common-2")
    .IncludeDirectory("~/Admin/Resources/styles/", "*.less");
lessBundle.Transforms.Add(new LessTransform());
lessBundle.Transforms.Add(new CssMinify());
bundles.Add(lessBundle);
Run Code Online (Sandbox Code Playgroud)

我还使用了此处详述的 LessTransform 类。

当 debug="false" 文件被转换成标准 CSS 并编译成一个,正如预期的那样。

但是,当 debug="true" 文件没有被转换时,在 HTML 中留下一堆 .less URL,浏览器不理解这些 URL,IIS 似乎没有处理程序。

我意识到我可以构建一些处理程序来为这些 .less 文件提供服务,但我认为我不需要这样做。即使在调试时,优化框架也不会将 LESS 转换为 CSS 吗?

.net less bundling-and-minification asp.net-optimization

4
推荐指数
1
解决办法
3352
查看次数