html - Spring WAR 中的 CSS 文件返回 404

标签 html css jsp maven

我有一个使用 Spring 和 Maven 构建的 Java EE 应用程序。它具有通常的元素结构。这是一些层次结构。

MyApplication
    src
        main
            webapp
                WEB-INF
                    layout
                        header.jsp
                styles
                    main.css

我想将该 CSS 文件包含在我的 JSP 中。我有以下标签。

<c:url var="styleSheetUrl" value="/styles/main.css" />
<link rel="stylesheet" href="${styleSheetUrl}">

当我部署应用程序时,没有找到 CSS 页面。当我查看页面源代码时,href 是 /MyApplication/styles/main.css。查看WAR内部,有一个/styles/main.css。但是,当我尝试直接在浏览器中访问 CSS 文件时,我得到了 404。

我发现问题的原因是 Dispatcher Servlet 映射。映射如下所示。

<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我想 Dispatcher Servlet 不知道如何处理 CSS 请求。处理此问题的最佳方法是什么?我宁愿不必更改所有请求映射。

最佳答案

您需要配置 Spring 来处理 static resources (CSS、JS、图像)与对您的应用程序的 servlet 请求分开。为此,请配置您的 Spring 配置以通过单独的顶级目录(例如“static”)将请求映射到静态文件:

<!-- Where to load static resources (css, js, images) -->
<mvc:resources mapping="/static/**" location="/" />

然后将您的 JSP 更改为使用路径 /static/styles/main.css

请注意,约定要求您将“styles”目录命名为“css”。

关于html - Spring WAR 中的 CSS 文件返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344905/

相关文章:

jquery - Bootstrap Image Gallery - 根据相册显示图片

jsp - 仅限制特定用户访问 JSP/Servlet

java - 在 java 中使用 Hibernate 4.0.1 + Spring 3.2.5 时出现错误

html - 将底部边框定位在有序列表的元素符号下方

android - 下载 .apk 在手机上变成 .txt

javascript - 文本区域,其中部分文本可以移动但不能删除

javascript - 如何使用 JavaScript 更改 HTML 标签

html - 为什么当将位置从固定位置更改为绝对位置时,div 元素的大小会发生变化?

java - JSP Google API 导入错误

javascript - 使用 Div 水平和垂直填充空间