标签: bundling-and-minification

MVC 4:强制ScriptBundle返回Javascript文件的非优化链接

我们试图在MVC 4中获取ScriptBundle,以便在web.config中的debug = false时返回扩展的javascript列表.默认情况下,ScriptBundle会在debug = false时将javascript优化为一个调用.

目前,当您在web.config中设置debug = false时,ScriptBundle将组合并缩小 javascript文件,如下所示:

 <script src="/AAA/Scripts/a?dfkjghakjsdfhglkjasdhfkljasdf"></script>
Run Code Online (Sandbox Code Playgroud)

我们需要Scriptbundle,当debug = false时,输出扩展的javascript,如下所示:

<script src="/AAA/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="/AAA/Scripts/jquery.tipTip.js"></script>
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭Scriptbundle优化?

为什么?当我们在网站上进行https重定向时,ScriptBundle优化的脚本链接不起作用(我们在链接上获得503 Forbidden)

asp.net-mvc minify asp.net-mvc-4 bundling-and-minification scriptbundle

3
推荐指数
1
解决办法
4825
查看次数

集成Font Awesome,Less,Twitter Bootstrap和MVC4捆绑/缩小

我有Font Awesome,Less,Twitter Bootstrap和MVC4都在调试模式下很好地协同工作.

当我从web.config的编译节点部署和删除调试时,MVC4捆绑和缩小开始了.

当我像这样部署浏览我的网站时,字体真棒图标不再有效.

做一个查看源来获取Bootstrap的内容包给我这个HTML:

<link href="/Content/bootstrap?v=q6mwz5qEMtOzVPXqIVuZ8Z6LtMFDC3_UV0F5pQm5Gfg1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

获取URL并粘贴在浏览器中我可以获得缩小的代码:

@import"reset.less";@import"variables.less";@import"mixins.less";@import"scaffolding.less";@import"grid.less";@import"layouts.less";@import"type.less";@import"code.less";@import"forms.less";@import"tables.less";@import"font-awesome.less";@import"dropdowns.less";@import"wells.less";@import"component-animations.less";@import"close.less";@import"buttons.less";@import"button-groups.less";@import"alerts.less";@import"navs.less";@import"navbar.less";@import"breadcrumbs.less";@import"pagination.less";@import"pager.less";@import"modals.less";@import"tooltip.less";@import"popovers.less";@import"thumbnails.less";@import"media.less";@import"labels-badges.less";@import"progress-bars.less";@import"accordion.less";@import"carousel.less";@import"hero-unit.less";@import"utilities.less";@import"variables.less";@import"mixins.less";@import"responsive-utilities.less";@import"responsive-1200px-min.less";@import"responsive-768px-979px.less";@import"responsive-767px-max.less";@import"responsive-navbar.less";
Run Code Online (Sandbox Code Playgroud)

我还有一些其他的CSS捆绑包,如上所述,它们都没有显示任何错误.

当我在Visual Studio 2012项目中查看font-awesome.less文件时,VS认为它有许多错误.记住Font Awesome图标在调试中显示正常,所以我认为没有真正的错误.

第一个是:@fontAwesomePath:'../ font';

我认为路径是正确的(无论如何都在调试中工作),但VS告诉我fontAwesomePath不是已知的@指令.

VS认为存在许多其他错误,但同样,字体很棒在调试模式下工作.

有任何想法吗?

less asp.net-mvc-4 twitter-bootstrap bundling-and-minification

3
推荐指数
1
解决办法
3445
查看次数

缩小会影响JavaScript功能吗?

我正在考虑使用捆绑为我的组的ASP.NET MVC3项目,我不能打破它因为我是一个初级开发人员.

JavaScript缩小是否会影响JavaScript函数名称 - 即我是否仍然可以使用内联代码中的相同名称来调用我缩小的函数?此外,它是否会影响代码的行为 - 或者JavaScript功能和订单是否完全保留?

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

3
推荐指数
1
解决办法
1160
查看次数

渲染DynamicFolderBundle?

我正在尝试添加一个捆绑的文件夹,所以我不必手动将每个新的.less文件添加到通常的包中,但我不知道如何渲染它.

在BundleConfig中,

 BundleTable.Bundles.Add(new DynamicFolderBundle("Content/autobundled", "*.less", new LessTransform(), new CssMinify()));
//.less sheets are at Content/autobundled/example.less 
Run Code Online (Sandbox Code Playgroud)

在Razor页面中:

 @Styles.Render("Content/autobundled")
Run Code Online (Sandbox Code Playgroud)

输出:

<link href="/Binky.Web/Content/autobundled" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

但这并没有链接任何文件,只是链接到不可浏览的目录.我读过的文章没有说明在创建文件夹后如何使用文件夹包.

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

3
推荐指数
1
解决办法
1970
查看次数

如何在不重新编译的情况下使用ASP.NET捆绑和缩小?

约束:我没有使用MVC,而是在我的Web应用程序中使用了常规的.aspx文件。也不使用母版页-每个页面都是不同的野兽,因此该解决方案不适合我。

我为捆绑和缩小而阅读的大多数示例都需要一些特殊的MVC标记,或者要求您先识别捆绑的脚本/样式表,然后再引用这些捆绑。我想避免每次在.aspx页中添加或修改.js引用时都重新编译DLL。

我对阅读Msft文档有些困惑。是否有一种方法(如ASP.NET控件)可以包装一系列script标签(或linkCSS的标签)来动态创建和使用包?我不想重新发明轮子,而是认真考虑创建自己的用户控件/自定义控件来处理这个问题。还有其他选择吗?

例如,寻找这样的东西:

<asp:AdHocScriptBundle id="mypage_bundle" runat="server">
    <script type="text/javascript" src="~/scripts/mypage1.js"></script>
    <script type="text/javascript" src="~/scripts/mypage2.js"></script>
    <script type="text/javascript" src="~/scripts/mypage3.js"></script>
</asp:AdHocScriptBundle>
Run Code Online (Sandbox Code Playgroud)

启用捆绑后,将自动用类似于以下内容的asp:AdHocScriptBundle单个script标签替换的内容:

<script type="text/javascript" src="/webappname/bundles/mypage_bundle.js?v=dh120398dh1298dh192d8hd32d"></script>
Run Code Online (Sandbox Code Playgroud)

并且当捆绑功能被禁用时,通常按以下方式输出内容:

<script type="text/javascript" src="/webappname/scripts/mypage1.js"></script>
<script type="text/javascript" src="/webappname/scripts/mypage2.js"></script>
<script type="text/javascript" src="/webappname/scripts/mypage3.js"></script>
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

无论如何即将推出自己的游戏,但如果已经有解决方案,请分享,谢谢!

javascript asp.net bundling-and-minification

3
推荐指数
1
解决办法
2656
查看次数

ScriptBundle在调试模式下添加完整文件和缩小文件

我在BundleConfig.cs中定义了以下ScriptBundle-

    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        {
          bundles.Add(new ScriptBundle("~/js/yepnope").Include(
                "~/Scripts/yepnope.{version}.js"));
       }
    }
Run Code Online (Sandbox Code Playgroud)

它实际上并不是唯一的捆绑包,但这就是与问题相关的所有内容 - 其余的只是其他捆绑定义.

当处于web.config中设置的"调试"模式时

<compilation debug="true" targetFramework="4.5">
Run Code Online (Sandbox Code Playgroud)

脚本的完整版本和缩小版本都会发送到浏览器 -

<script src="/Scripts/yepnope.1.5.4-min.js"></script>
<script src="/Scripts/yepnope.1.5.4.js"></script>
Run Code Online (Sandbox Code Playgroud)

使用HTML帮助程序添加脚本,如此 -

@section HeadScripts
{
    @Scripts.Render("~/js/yepnope")
}
Run Code Online (Sandbox Code Playgroud)

这是在Windows 7 Professional 64位上的Visual Studio 2012中运行的MVC4项目.

无论我做什么,我都无法使{version}通配符按照Microsoft文档中的描述行事-

注意:除非EnableOptimizations为true或Web.config文件中的编译元素中的debug属性设置为false,否则不会捆绑或缩小文件.此外,将不使用.min版本的文件, 将选择完整的调试版本.

对于ASP.NET MVC 4,这意味着使用调试配置,文件jquery-1.7.1.js将添加到包中.在发布配置中,将添加jquery-1.7.1.min.js.捆绑框架遵循几个常见的约定,例如:

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

上面显示的{version}通配符匹配用于在Scripts文件夹中使用适当版本的jQuery自动创建jQuery包.在此示例中,使用通配符可提供以下好处:

  • 允许您使用NuGet更新到更新的jQuery版本,而无需在视图页面中更改前面的捆绑代码或jQuery引用.
  • 自动选择调试配置的完整版本和发布版本的".min"版本.

如果我添加"EnableOptimizations",它似乎表现得如预期的那样.

有没有人注意到这个或找到了解决方案?

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

3
推荐指数
1
解决办法
3098
查看次数

Bundle Transformer for LESS和@import的使用

我在使用Bundle Transformer的版本1.7.27:LESS包:http://www.nuget.org/packages/BundleTransformer.Less/1.7.27

然后我尝试在MVC4项目的BundleConfig.cs文件中执行以下操作App_Start.

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new StyleBundle("~/Content/fontawesome")
        .Include("~/Content/less/fontawesome/font-awesome.less"));
    BundleTable.EnableOptimizations = true;
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,Font Awesome less软件包在font-awesome.less文件中包含这些@imports

@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
@import "bootstrap.less";
@import "extras.less";
@import "icons.less";
Run Code Online (Sandbox Code Playgroud)

这些文件与文件位于同一目录中font-awesome.less.

捆绑开始并显示如下:

<link href="/Content/fontawesome?v=D2n9lw_SpgOm7QSYHjToA3En_lqvKQpP2DbfM_CElpc1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

但@import文件都返回404未找到的错误,我认为@import在执行捆绑之前,规则将首先从其相对位置处理到原始文件.

我错过了什么吗?

c# less asp.net-mvc-4 bundling-and-minification bundletransformer

3
推荐指数
1
解决办法
6643
查看次数

如何在发布模式下自动删除HTML注释?

我试图找到一种方法来自动删除发布模式中的HTML注释有两个主要原因

  • 缩小:某些页面中有很多评论
  • 注释包含开发通知和TODO列表(向最终用户公开).

我正在使用ASP.NET MVC并寻找与捆绑和缩小功能相同的精神.

html asp.net asp.net-mvc comments bundling-and-minification

3
推荐指数
1
解决办法
1025
查看次数

自动切换到不同环境中的缩小CSS和JS文件

我正在使用ASP.Net MVC 5并且还利用WebEssentials LESSbundle功能.

WebEssentials设置为在保存时创建缩小的css和js文件.这是我想要的功能,因为我可以监视输出并降低应用程序启动时间(不使用Asp.Net MVC包).

如何在部署文件时自动让我的应用程序使用缩小版本的文件,而无需手动更改文件名?

所以,例如,来自:

<link href="somestyles.css" .. > 
Run Code Online (Sandbox Code Playgroud)

至:

<link href="somestyles-min.css" .. >
Run Code Online (Sandbox Code Playgroud)

我确实读过我可以将WebEssentials和Asp.Net MVC Bundle结合起来,只要我在Asp.Net MVC Bundles中禁用了缩小选项.然后,这将替换生产(web.config [debug="false"])中的MIN文件.

这是我唯一的选择还是有更好的方法来实现这一目标?

asp.net-mvc bundling-and-minification web-essentials asp.net-mvc-5

3
推荐指数
1
解决办法
2192
查看次数

如何将gulp任务添加到角度cli构建中

我正在将Angular 4项目的部署工具切换为angular/cli.该命令默认ng build将生成的包放在一个dist文件夹中.

我需要弄清楚如何将自定义任务添加到此过程.具体来说,我需要将大量.svg文件捆绑并缩小为sprite.defs.svg文件,并将结果放入dist/assets/svg/.使用我以前的部署工具链,我使用gulpgulp-svg-sprite插件.这是我的捆绑步骤:

const svgSprite = require('gulp-svg-sprite');

gulp.src('**/*.svg')
  .pipe(svgSprite({
    mode: {
      defs: {
        dest:'.',
        sprite:"sprite.defs.svg"
      }
    }
  }))
  .pipe(gulp.dest('dist/assets/svg'));
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法将这样的东西整合到angular/cli中ng build

deployment bundling-and-minification gulp angular-cli angular

3
推荐指数
1
解决办法
3429
查看次数