没有静态资源映射 Spring 启动
No mapping for static-resources Spring Boot
在我的 Spring-Boot 应用程序中,js 和 css 文件不起作用,它说 404 未找到。
我的 html 页面包括以下内容:
<head>
<link href="/webjars/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/css/style.css" rel="stylesheet">
<script src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/sockjs-client/sockjs.min.js"></script>
<script src="/webjars/stomp-websocket/stomp.min.js"></script>
<script src="/static/js/operations.js"></script>
</head>
我这样配置资源:
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
}
但在我收到的日志中:
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
o.s.web.servlet.PageNotFound : No mapping for GET /webjars/jquery/jquery.min.js
o.s.web.servlet.PageNotFound : No mapping for GET /static/css/style.css
o.s.web.servlet.PageNotFound : No mapping for GET /static/js/operations.js
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
这是静态源的位置:
我做错了什么?
默认情况下,此处理程序提供类路径上任何 /static, /public, /resources, and /META-INF/resources
目录中的静态内容。由于 src/main/resources
通常默认位于类路径中,我们可以将这些目录中的任何一个放在那里。
这意味着您的链接应该如下所示:
<link href="/css/style.css" rel="stylesheet">
而不是
<link href="/static/css/style.css" rel="stylesheet">
我能够使用以下路径解决项目中的问题
href="${pageContext.request.contextPath}/resources/static/..."
所以尝试使用下面的路径
href="${pageContext.request.contextPath}/resources/static/css/style.css"
可能有更好的解决方法,但在此之前这是一个快速修复。
在我的 Spring-Boot 应用程序中,js 和 css 文件不起作用,它说 404 未找到。
我的 html 页面包括以下内容:
<head>
<link href="/webjars/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/css/style.css" rel="stylesheet">
<script src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/sockjs-client/sockjs.min.js"></script>
<script src="/webjars/stomp-websocket/stomp.min.js"></script>
<script src="/static/js/operations.js"></script>
</head>
我这样配置资源:
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
}
但在我收到的日志中:
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
o.s.web.servlet.PageNotFound : No mapping for GET /webjars/jquery/jquery.min.js
o.s.web.servlet.PageNotFound : No mapping for GET /static/css/style.css
o.s.web.servlet.PageNotFound : No mapping for GET /static/js/operations.js
o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
这是静态源的位置:
我做错了什么?
默认情况下,此处理程序提供类路径上任何 /static, /public, /resources, and /META-INF/resources
目录中的静态内容。由于 src/main/resources
通常默认位于类路径中,我们可以将这些目录中的任何一个放在那里。
这意味着您的链接应该如下所示:
<link href="/css/style.css" rel="stylesheet">
而不是
<link href="/static/css/style.css" rel="stylesheet">
我能够使用以下路径解决项目中的问题
href="${pageContext.request.contextPath}/resources/static/..."
所以尝试使用下面的路径
href="${pageContext.request.contextPath}/resources/static/css/style.css"
可能有更好的解决方法,但在此之前这是一个快速修复。