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文件即可。