很抱歉,如果之前已经询问过,但我尝试过的所有内容都无效。我的问题是当url不是root时我的静态资源没有被加载,即如果url是localhost:8080 / users css文件加载正常但是如果我尝试加载localhost的css文件:8080 / users / 1或用户静态文件加载后的任何其他网址。我的静态文件位于resources / static / public / css。
我知道这可能是愚蠢的事。提前谢谢。
我的webConfig课程:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/webjars/**").permitAll();
http
.authorizeRequests()
.antMatchers("/",
"/home",
"/error",
"/signup",
"/forgot-password",
"/reset-password/*",
"/public/**").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
//.defaultSuccessUrl()
.permitAll().and()
.rememberMe().key(rememberMeKey).rememberMeServices(rememberMeServices()).and()
.logout()
.permitAll();
}
MvcConfig类
@Configuration
@ComponentScan
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
registry.addViewController("/login").setViewName("login");
}
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}
更新*** 头文件
<link rel="shortcut icon" type="image/png" sizes="16x16" href="./public/images/favicon/logo.png"/>
<link type="text/css" rel="stylesheet" href="./public/css/style.css"/>
页脚:
<script src="./public/lib/bootstrap-3.1.1/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="./public/js/home.js"></script>
<script src="./public/js/webcam.js"></script>
<script src="./public/js/recordVideo.js"></script>
答案 0 :(得分:0)
您正在从文件相对(./)路径提供静态资源。当您从目录结构中的较深层提供文件时,它们将无法访问。
使用站点相对路径:(/)。例如:
" /public/..."
我们在您的服务器中嵌入了一个完整的网址。