我在编写网络应用程序时遇到了一些问题。 当我使用这样的 URL 时 http://localhost:8080/user 我没有任何问题,我的应用程序工作正常,但是当我使用诸如 http://localhost:8080/some-intermediate-node/user 之类的 URL 时 我的页面没有任何样式和java脚本代码。 属于我显示我的调度程序 servlet 配置
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.excbooks.controller")
public class ServletConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**").addResourceLocations("/css");
registry.addResourceHandler("/js/**").addResourceLocations("/js");
}
@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix("");
resolver.setViewClass(JstlView.class);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
和我的 Controller
@Controller
public class MainController {
{
BasicConfigurator.configure();
}
@RequestMapping(value = "/d/login", method = RequestMethod.GET)
public String login(Model model){
return "log-in.html";
}
@RequestMapping(value = "/d/user", method = RequestMethod.GET)
public String userProfile(Model model){
User user = new User();
user.setId(new BigInteger("1"));
user.setUsername("Sashko");
model.addAttribute("user",user);
return "index.jsp";
}
}
链接到我的 JSP 索引 https://drive.google.com/file/d/0B42ezhAKqwZlcUEyVkR5amNIaDg/view?usp=sharing
最佳答案
在你的 JSP 中,我怀疑 javacsript/css 文件被大致像...
<link rel="stylesheet" href="css/my.css">
<script src="js/my.js"></script>
问题在于 href
和 src
属性指定相对 URL。当 URL 为 http://localhost:8080/user 时,它们会正确指向您的文件。 ,但是当 URL 为 http://localhost:8080/some-intermediate-node/user 时浏览器将寻找...
- http://localhost:8080/some-intermediate-node/css/my.css
- http://localhost:8080/some-intermediate-node/js/my.js
分别。
更改 href
和 src
属性,以便它们以正斜杠 (/
) 字符开头。
关于java - Spring mvc加载资源的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40565770/