我正在尝试使用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/");
}
}
答案 0 :(得分:3)
webapp未部署为root webapp。所以它有一个“上下文路径”。例如,访问位于webapp根目录下的index.html文件的路径实际上就像
http://localhost:8080/myfirstwebapp/index.html
这是浏览器的位置栏包含的内容,/myfirstwebapp
是应用程序的上下文路径。
因此,如果您的网页包含href="/sources/css/foundation.css"
,则浏览器会尝试从
http://localhost:8080/sources/css/foundation.css
而不是
http://localhost:8080/myfirstwebapp/sources/css/foundation.css
因此,您需要在您的网络应用中添加所有绝对网址的上下文路径。使用JSTL:
href="<c:url value='/sources/css/foundation.css'/>"
没有JSTL:
href="${pageContext.request.contextPath}/sources/css/foundation.css"
答案 1 :(得分:0)
尝试使用完整的网址路径直接通过网络浏览器调用这些css。 这取决于您在Tomcat或Web服务器中定义的应用程序路径。
如果它映射为http://yourdomain.com/(root),则应为http://yourdomain.com/sources/css/foundation.css,但如果映射为http://yourdomain.com/test或其他内容,则CSS的网址应为http://yourdomain.com/test/sources/css/fundations.css。< / p>
您可以使用相对传递,或者引入PATH变量,以便始终在源代码中创建类似http://yourdomain.com/PATH/sources/css/foundations.css的链接。
答案 2 :(得分:0)
删除 / sources 中的 / 。这将有效