gpt4 book ai didi

css - Spring Dispatcher Servlet 在尝试加载我的 CSS 样式表时导致问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:21 25 4
gpt4 key购买 nike

当我加载我的 JSP 页面 home.jsp 时,我包含了样式表 signIn.css。但是在我无法加载资源的地方发生了一些事情:服务器响应我的样式表的状态为 404(未找到)。我认为当我的 CSS 文件存储在/customerPortal/src/main/webapp/WEB-INF/signIn.css 时,我的 spring dispatcher servlet 正在寻找 URI/customerPortal/signIn.css(不使用 spring 我没有问题) .我认为它与 getServletMappings 有关,它切断了文件位置。

我的 CSS 页面与我的 home.jsp 页面位于完全相同的位置。我还设置了我的 SpringMvcInitializer 类和 MvcConfiguration 类,因为我正在使用 Spring 引导。我也有一个家庭 Controller 。我没有使用 spring-dispatcher-servlet.xml。

//MvcConfiguration.java

package Configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

import ShoppingCart.Cart;

@Configuration
@ComponentScan(basePackages="Controllers/")
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter {

@Bean
public ViewResolver getViewResolver()
{
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".jsp");

return resolver;
}

@Bean
public Cart getCart(){
return new Cart();
}
}

//SpringMvcInitializer.java

package Configuration;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {MvcConfiguration.class};
}

@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return null;
}

@Override
protected String[] getServletMappings() {

return new String[] { "/" };
}
}

//home.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@include file="header.jsp" %>
<link rel="stylesheet" href="/src/main/webapp/WEB-INF/signIn.css">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</body
</html>

我的jsp和css页面存放在/customerPortal/src/main/webapp/WEB-INF/home.jsp/customerPortal/src/main/webapp/WEB-INF/signIn.css

但是在我的 eclipse 控制台上,我得到以下信息:- 名称为“dispatcher”的 DispatcherServlet 处理 [/customerPortal/signIn.css] 的 GET 请求- 没有找到 [/signIn.css] 的处理程序方法- 在名为“dispatcher”的 DispatcherServlet 中未找到具有 URI [/customerPortal/signIn.css] 的 HTTP 请求的映射

在我的 chrome 控制台浏览器上,我得到:获取 http://localhost:8035/customerPortal/signIn.css net::ERR_ABORTED 404(未找到)

当我的 CSS 文件存储在/customerPortal/src/main/webapp/WEB-INF/signIn.css 时,为什么要查找 URI/customerPortal/signIn.css?

最佳答案

请注意,您不能直接使用 URL 访问 WEB-INF,Java servlet 不允许。此外,不要将资源放在WEB-INF下

What should you do now?

在webapp下创建一个名为resources的文件夹,然后为css创建一个文件夹(resources/css)。然后将所有 css 放在 css 文件夹下。并创建另一个文件夹 js 并将所有 JavaScript 文件放在那里。

然后将此方法添加到您的 MvcConfiguration 类中。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}

现在你在资源中有了你的css,然后通过

访问它
<link rel="stylesheet" href="resources/css/signIn.css" />

Solution for your current problem, but not recommend to put static resources under WEB-INF.

更改您的 <link rel="stylesheet" href="/src/main/webapp/WEB-INF/signIn.css">对此的代码

<style><%@include file="/WEB-INF/signIn.css"%></style>

祝你好运...!快乐编码......!

关于css - Spring Dispatcher Servlet 在尝试加载我的 CSS 样式表时导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55749972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com