MVC3引用了Layout页的View,怎么加自己的css

html-css016

MVC3引用了Layout页的View,怎么加自己的css,第1张

View文件夹下面会有个_ViewStart.cshtml的文件,初始化了你的模板。如果不使用模板Layout = null

View Code

@{

Layout = "~/Views/Shared/_Layout.cshtml"

}

添加css可以按楼上说的

通常我会把CSS |RenderSection加在头,js加在末尾

View Code

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

@RenderSection("Meta",false)

<title>@ViewBag.Title</title>

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

@RenderSection("Css",false)

</head>

<body>

@RenderBody()

@RenderSection("Js",false)

</body>

</html>

复制代码

在视图直接引用

@section Css{

<link href="@Url.Content("~/Content/AdminCss/Article.css")" rel="Stylesheet" type="text/css" />

}

问题产生原因:

<url-pattern>/</url-pattern>这表示这个servlet 拦截了所有的请求,包括css,js等。所以出现上面描述的情况。

解决办法(以下全部根据网上资料整理而成):

解决方案1:

step1:在 webapp下建立static 文件夹,并在 static 文件夹里面建立css 文件夹,然后建立对应.css 文件

step2:修改 mvc-dispatcher-servlet.xml 文件(或者spring对应的配置文件,上图的配置文件为spring-mvc.xml)

添加配置:

<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>

解决方案2:

修改web.xml

修改

<servlet-mapping>

<servlet-name>mvc-dispatcher</servlet-name>

<url-pattern>*.do</url-pattern></servlet-mapping>

这样dispatchservlet 只拦截*.do 的url. 并不拦截css,js

解决方案3(推荐,亲测可用):

修改web.xml

添加

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>/static/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.js</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.css</url-pattern>

</servlet-mapping>

其实没有那么复杂。

要知道编程时css应该和页面分离的。

既然你有模板,那么在模板中设置css文件的链接就可以。

当子模板在同一层目录时,可以采用相对路径;

当子模版不在同一层目录时,采用绝对路径;

只要保证最终生成的页面,能够链接到css文件即可。