1

这是我放我的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?

4

2 回答 2

1

默认情况下,资源处理程序不会在类路径上查找资源。它在 webapp 中寻找它们。

创建一个名为的文件夹resources并将其放入/src/main/webapp. 然后将您的css,js等文件夹放在那里。

于 2013-11-01T14:56:38.343 回答
1

默认情况下无法访问 src 下的文件,您应该将这些资产放入 WebContent 目录。


资源通常表示配置属性,如properties和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"/>

使用相对路径不好!!

于 2013-11-01T14:57:25.783 回答