【问题标题】:How do we add Bundling and Minification to a project that was upgraded from Visual Studio 2010 project我们如何将捆绑和缩小添加到从 Visual Studio 2010 项目升级的项目中
【发布时间】:2014-02-08 05:52:11
【问题描述】:

我将使用 Visual Studio 2010 开发的旧网站项目升级为 Visual Studio 2013 中的 Web 应用程序项目。现在我想向该应用程序添加一些 MVC 组件,包括捆绑和缩小。但是缺少 App_Start 文件夹。是否需要安装任何可以创建 App_Start 文件夹并添加“捆绑和缩小”功能的 NuGet 包?

例如,这个项目也缺少“Content”文件夹,但是当我通过 NuGet 包管理器安装 jQuery UI 1.10.4 包时,它创建了 Content 文件夹并向其中添加 jQuery UI css 文件。

【问题讨论】:

  • 您可以自己创建一个 App_Start 文件夹并将其添加到项目中(如果您需要的话)。不过,我怀疑捆绑/缩小涉及更多。这是我不喜欢大而重的 IDE 的一件事。他们让你不知道幕后发生了什么。
  • 我想知道一个标准程序,它会自动创建 App_Start 文件夹并至少安装和配置捆绑/缩小的初始功能,我可以从中添加/删除 css/js 文件到捆绑包如果需要的话。我假设 VS2013 会有一些功能来实现这一点,但还没有找到。
  • @nam 另外,除了我的回答之外,我还要补充一点:App_Start 文件夹没有什么特别之处。我认为他们只是出于组织目的在 MVC 项目中引入了它。如果您查看“特殊”Web Project Folders,它不包括 App_Start。

标签: visual-studio-2013 bundling-and-minification


【解决方案1】:

第 1 步: 安装捆绑和缩小(通过 GUI)。 Tools > Library Package Manager > Manage NuGet Packages For Solution。在线搜索“捆绑”,第一个结果应该是Microsoft ASP.NET Web Optimization Framework。安装它。

第 2 步: 右键单击​​您的 Web 项目并添加新文件夹并将其命名为 App_Start

第 3 步:App_Start 中添加一个名为 BundleConfig.cs 的新类。它可能看起来像这样:

using System.Web.Optimization;

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js"));
    }
}

第 4 步: 在 global.asax 中的 ApplicationStart 上加载:

void Application_Start(object sender, EventArgs e)
{
     BundleConfig.RegisterBundles(BundleTable.Bundles);
}

第 5 步: 添加到 MasterPage 的页脚。我通常这样做:

        <%: System.Web.Optimization.Scripts.Render("~/bundles/jquery") %>
        <asp:ContentPlaceHolder ID="MyScripts" runat="server"></asp:ContentPlaceHolder>
    </body>
</html>

这样,jQuery 在 &lt;/body&gt; 标记附近加载,您可以将所有内联脚本放在 ContentPlaceHolder 中,在您的主脚本引用之后呈现。

【讨论】:

  • 您不必在页脚中加载...但最好这样做。如果这是一个带有一堆内联 jQuery 的遗留项目,如果 jQuery ref 在页脚中会中断,你仍然可以这样做,只需将所有内容移到新的 ContentPlaceHolder 中。是的,需要时间,但从长远来看,它会更好。如果您对用户控件中的脚本有疑问,我也会在 this SO post 中展示如何移动它们。
猜你喜欢
  • 2012-08-09
  • 2018-03-02
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
相关资源
最近更新 更多