通用_外部加载外部样式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36792339/article/details/82711063

一 、@Scripts.Render和@Styles.Render("~/scripts/cssval")报错

1、原因:我们知道在ASP.NET MVC中的视图页中可以使用@Styles.Render加载静态css资源 ,@Scripts.Render加载静态js资源,但添加的是一个空的MVC项目,Scripts类则使用不了,报错:

编译器错误消息: CS0103: The name 'Styles' does not exist in the current context

2、原由:因为它是属于System.Web.Optimization命名空间下,属于System.Web.Optimization.dll,而空的MVC项目默认没有添加该引用的,需要额外添加。App_Start文件夹下的BundleConfig.cs文件也默认没有,因为该文件使用的也是这个dll,该文件主要是用来打包静态资源的。

3、解决:在程序包管理器控制台执行命令Install-Package Microsoft.AspNet.Web.Optimization 添加。添加好后我们就可以使用Styles类了,但是要直接通过@Styles.Render使用还得在views文件夹下的web.config文件添加命名空间:<add namespace="System.Web.Optimization" />

这里写图片描述

4、页面引入
@Styles.Render("/scripts/layui/css/layui.css")
@Scripts.Render("/scripts/layui/layui.js")

二、BundleConfig实现对Css、Js压缩打包加载

Bundle不是.net Framework框架中的一员,使用Bundle首先要先添加引用,如下:
nuget包管理–程序包管理控制台–Install-Package Microsoft.AspNet.Web.Optimization

1.App_Start添加BundleConfig.cs文件,当然你可以把如下直接写在Globle.aspx的Application_Start中

using System.Web.Optimization;
public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        //1.添加js
        bundles.Add(new ScriptBundle("~/scripts/layui/jsLayui").Include("~/Scripts/layui/layui.js"));
        //2.添加css
        bundles.Add(new StyleBundle("~/scripts/cssLayui").Include("~/scripts/layui/css/layui.css"));
        //3.启动css,js压缩
        BundleTable.EnableOptimizations = true;
        //注意:不区分大小写 引入央视的时候
        //外部可访问的样式 http://localhost:52526/scripts/layui/css/layui.css  // bundles.Add(别名,外部文件相对路径) 别名会影响layui模块引入其他模块的路径   一般规则 别名和相对路径一直,最终js是别名
    }

2.Globle.aspx的Application_Start引用
BundleConfig.RegisterBundles(BundleTable.Bundles);

3.修改View下的web.config中razor引擎配置,添加System.Web.Optimization

    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <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" />
        <add namespace="FMMV.Web" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

4.前台引用

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>layout 后台大布局 - Layui</title>

    @Styles.Render("~/scripts/cssLayui");

</head>
<body class="layui-layout-body">
    <div class="layui-layout layui-layout-admin">
        <div class="layui-header">
            <div class="layui-logo">layui 后台布局</div>
            <!-- 头部区域(可配合layui已有的水平导航) -->
            <ul class="layui-nav layui-layout-left">
                <li class="layui-nav-item"><a href="">控制台</a></li>
                <li class="layui-nav-item"><a href="">商品管理</a></li>
                <li class="layui-nav-item"><a href="">用户</a></li>
                <li class="layui-nav-item">
                    <a href="javascript:;">其它系统</a>
                    <dl class="layui-nav-child">
                        <dd><a href="">邮件管理</a></dd>
                        <dd><a href="">消息管理</a></dd>
                        <dd><a href="">授权管理</a></dd>
                    </dl>
                </li>
            </ul>
            <ul class="layui-nav layui-layout-right">
                <li class="layui-nav-item">
                    <a href="javascript:;">
                        <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                        贤心
                    </a>
                    <dl class="layui-nav-child">
                        <dd><a href="">基本资料</a></dd>
                        <dd><a href="">安全设置</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="">退了</a></li>
            </ul>
        </div>

        <div class="layui-side layui-bg-black">
            <div class="layui-side-scroll">
                <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
                <ul class="layui-nav layui-nav-tree" lay-filter="test">
                    <li class="layui-nav-item layui-nav-itemed">
                        <a class="" href="javascript:;">所有商品</a>
                        <dl class="layui-nav-child">
                            <dd><a href="javascript:;">列表一</a></dd>
                            <dd><a href="javascript:;">列表二</a></dd>
                            <dd><a href="javascript:;">列表三</a></dd>
                            <dd><a href="">超链接</a></dd>
                        </dl>
                    </li>
                    <li class="layui-nav-item">
                        <a href="javascript:;">解决方案</a>
                        <dl class="layui-nav-child">
                            <dd><a href="javascript:;">列表一</a></dd>
                            <dd><a href="javascript:;">列表二</a></dd>
                            <dd><a href="">超链接</a></dd>
                        </dl>
                    </li>
                    <li class="layui-nav-item"><a href="">云市场</a></li>
                    <li class="layui-nav-item"><a href="">发布商品</a></li>
                </ul>
            </div>
        </div>

        <div class="layui-body">
            <!-- 内容主体区域 -->
            <div style="padding: 15px;">内容主体区域</div>
        </div>

        <div class="layui-footer">
            <!-- 底部固定区域 -->
            © layui.com - 底部固定区域
        </div>
    </div>

    @Scripts.Render("~/scripts/layui/jsLayui");


    <script>
//JavaScript代码区域
layui.use('element', function(){
  var element = layui.element;

});
    </script>
</body>
</html>

//

一种方式 (指定文件的)

    @Styles.Render("~/scripts/layui/cssLayui");
    @Styles.Render("~/scripts/cssCustom");
    @Scripts.Render("~/scripts/jsCustom");
    @Scripts.Render("~/scripts/layui/jsLayui");
    public static void RegisterBundles(BundleCollection bundles)
    {
        //1.添加js
        bundles.Add(new ScriptBundle("~/scripts/layui/jsLayui").Include("~/Scripts/layui/layui.js"));
        //2.添加css
        bundles.Add(new StyleBundle("~/scripts/layui/cssLayui").Include("~/scripts/layui/css/layui.css"));

        //自定义的
        bundles.Add(new ScriptBundle("~/scripts/jsCustom").Include("~/scripts/js/jquery.2.1.4.min"));
        bundles.Add(new StyleBundle("~/scripts/cssCustom").Include("~/scripts/css/css.css"));

        //3.启动css,js压缩
        BundleTable.EnableOptimizations = true;
        
    }

第二种方式 (指定目录的)-场景 图片路径以及其他资源路径

猜你喜欢

转载自blog.csdn.net/weixin_36792339/article/details/82711063