我尝试使用 jsp 页面中的 css 文件,但页面看不到 css 代码。
这是我的 .jsp 文件;
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Foundation | Welcome</title>
<link rel="stylesheet" href="/sources/css/foundation.css" />
<script src="/sources/js/vendor/modernizr.js"></script>
</head>
<body>
这是我的配置文件
@Configuration
@ComponentScan("com.sprhib")
@EnableWebMvc
public class BaseTestConfig {
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/sources/**").addResourceLocations("/sources/");
}
}
最佳答案
该 Web 应用程序未部署为根 Web 应用程序。所以它有一个“上下文路径”。例如,访问位于 web 应用程序根目录的 index.html 文件的路径实际上类似于
http://localhost:8080/myfirstwebapp/index.html
这是浏览器的地址栏包含的内容,/myfirstwebapp
是应用程序的上下文路径。
因此,如果您的页面包含 href="/sources/css/foundation.css"
,浏览器将尝试从以下位置加载 css 文件
http://localhost:8080/sources/css/foundation.css
不是来自
http://localhost:8080/myfirstwebapp/sources/css/foundation.css
因此,您需要将上下文路径添加到网络应用中的所有绝对 URL。使用 JSTL:
href="<c:url value='/sources/css/foundation.css'/>"
没有 JSTL:
href="${pageContext.request.contextPath}/sources/css/foundation.css"
关于java - 如何在jsp页面中使用css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953340/