这是我把我的css文件放在哪里:
这是我注册此资源的方式:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
这就是我从JSP引用这个css的方式:
<link type="text/css" href="/css/bootstrap.css" rel="stylesheet"/>
我可以看到包含内容但没有样式的JSP页面。
我认为错误是在引用但我无法找到它。我也尝试了这些,但不起作用:
<link type="text/css" href="../css/bootstrap.css" rel="stylesheet"/>
<link type="text/css" href="/resources/css/bootstrap.css" rel="stylesheet"/>
<link type="text/css" href="<%=request.getContextPath() %>/css/bootstrap.css" rel="stylesheet"/>
<link type="text/css" href="<%=request.getContextPath() %>/resources/css/bootstrap.css" rel="stylesheet"/>
有什么想法吗?
编辑:现在我已将css文件夹移至WebContent。看起来像这样:
它仍然不起作用。我应该注册什么ResourceHandler?
registry.addResourceHandler("/WEB-INF/**").addResourceLocations("/WEB-INF/"); ?
我应该如何从JSP引用css?
答案 0 :(得分:1)
默认情况下,资源处理程序不会在类路径上查找资源。它在webapp中查找它们。
创建一个名为resources
的文件夹,并将其放入/src/main/webapp
。然后将css
,js
等文件夹放在那里。
答案 1 :(得分:1)
在默认情况下无法访问src下的文件,您应该将这些资源放入WebContent目录。
资源通常意味着配置属性如属性和xml,它们将被使用 java代码,资产通常意味着可以直接通过浏览器访问,注意WEB-INF受到保护,你需要把你的css目录放在WebContent下,除了 WEB-INF
例如,您可以将您的css目录放在/WebContent/assets/
并在jsp页面的头部添加这些代码
<%
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath();
%>
<link type="text/css" href="<%=basePath%>/assets/css/bootstrap.css" rel="stylesheet"/>
使用相对路径不好!!