zoukankan      html  css  js  c++  java
  • MVC5手工添加System.Web.Optimization

    VS2012web手工添辑一个空的mvC5的项目,添加EF6的支持,在别的项目里复制了母版页_Layout.cshtml过来,发现Styles.Render未引用,这个引用使用的命名空间是System.Web.Optimization,直接在项目里添加是找不到的,如是在NuGet命令行添加Install-Package Microsoft.AspNet.Web.Optimization

    PM> Install-Package Microsoft.AspNet.Web.Optimization
    正在尝试解析依赖项“Microsoft.Web.Infrastructure (≥ 1.0.0)”。
    正在尝试解析依赖项“WebGrease (≥ 1.5.2)”。
    正在尝试解析依赖项“Antlr (≥ 3.4.1.9004)”。
    正在尝试解析依赖项“Newtonsoft.Json (≥ 5.0.4)”。
    正在安装“Antlr 3.4.1.9004”。
    已成功安装“Antlr 3.4.1.9004”。
    正在安装“Newtonsoft.Json 5.0.8”。
    已成功安装“Newtonsoft.Json 5.0.8”。
    正在安装“WebGrease 1.5.2”。
    您正在从 webgrease@microsoft.com 下载 WebGrease,有关此程序包的许可协议在 http://www.microsoft.com/web/webpi/eula/msn_webgrease_eula.htm 上提供。请检查此程序包是否有其他依赖项,这些依赖项可能带有各自的许可协议。您若使用程序包及依赖项,即构成您接受其许可协议。如果您不接受这些许可协议,请从您的设备中删除相关组件。
    已成功安装“WebGrease 1.5.2”。
    正在安装“Microsoft.AspNet.Web.Optimization 1.1.3”。
    您正在从 Microsoft 下载 Microsoft.AspNet.Web.Optimization,有关此程序包的许可协议在 http://www.microsoft.com/web/webpi/eula/aspnetcomponent_rtw_enu.htm 上提供。请检查此程序包是否有其他依赖项,这些依赖项可能带有各自的许可协议。您若使用程序包及依赖项,即构成您接受其许可协议。如果您不接受这些许可协议,请从您的设备中删除相关组件。
    已成功安装“Microsoft.AspNet.Web.Optimization 1.1.3”。

    到已成功安装"Microsoft.AspNet.Web.Optimization 1.1.3"这时就已经安装成功了,会自动给你的项目添加相关dll

    此时发现Styles.Render依然不可用,于是乎,我们给他增加命名空间View下面的webConfig添加

        <pages pageBaseType="System.Web.Mvc.WebViewPage">
          <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Web.Optimization"/>
          </namespaces>
        </pages>

    再次,在App_start下手工添加BundleConfig文件来加载css和js文件

    using System.Web;
    using System.Web.Optimization;
    
    namespace FoodCountSystem
    {
        public class BundleConfig
        {
            // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725
            public static void RegisterBundles(BundleCollection bundles)
            {
                bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                            "~/Scripts/jquery-{version}.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                            "~/Scripts/jquery-ui-{version}.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                            "~/Scripts/jquery.unobtrusive*",
                            "~/Scripts/jquery.validate*"));
    
                // 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好
                // 生产准备时,请使用 http://modernizr.com 上的生成工具来仅选择所需的测试。
                bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                            "~/Scripts/modernizr-*"));
    
                bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
    
                bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                            "~/Content/themes/base/jquery.ui.core.css",
                            "~/Content/themes/base/jquery.ui.resizable.css",
                            "~/Content/themes/base/jquery.ui.selectable.css",
                            "~/Content/themes/base/jquery.ui.accordion.css",
                            "~/Content/themes/base/jquery.ui.autocomplete.css",
                            "~/Content/themes/base/jquery.ui.button.css",
                            "~/Content/themes/base/jquery.ui.dialog.css",
                            "~/Content/themes/base/jquery.ui.slider.css",
                            "~/Content/themes/base/jquery.ui.tabs.css",
                            "~/Content/themes/base/jquery.ui.datepicker.css",
                            "~/Content/themes/base/jquery.ui.progressbar.css",
                            "~/Content/themes/base/jquery.ui.theme.css"));
            }
        }
    }
    View Code

    然后在Global.asax中注册BundleConfig.RegisterBundles(BundleTable.Bundles);

    到这里,mvc的母版页已正常可以使用了,并用可以使用BundleTable.Bundles来加载js和css文件,这个方法确实非常实用,且功能强大,能够压缩合并js和CSS,并且自己很容易扩展,方便快捷。

  • 相关阅读:
    react常用的方法
    react手动搭建
    js基础
    原生JavaScript实例之简单放大镜
    ||与&&的返回值
    promise简单小结
    连接服务器一般步骤
    github小总结
    __proto__指向问题
    一些函数返回值
  • 原文地址:https://www.cnblogs.com/sky2014/p/4221070.html
Copyright © 2011-2022 走看看