我只是想学习 servlet 和使用 jsp 文件。我想使用外部 css 文件来设置起始页(/登录页)的格式,但我没能做到。它可以与放在头部的内部 css 一起使用,但这不太好。
我使用 docker 运行 Web 应用程序,这是它的 Dockerfile:
FROM maven:3.9.7-eclipse-temurin-11 AS builder
WORKDIR /app
COPY . /app
RUN mvn clean package
FROM tomcat:9.0.89-jre11-temurin-jammy
COPY --from=builder /app/target/*.war $CATALINA_HOME/webapps/ROOT.war
EXPOSE 8080
CMD ["catalina.sh", "run"]
这是我的文件的结构:
这是我的index.jsp的开始部分:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Login</title>
<base href="${pageContext.request.contextPath}">
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
我尝试了很多东西,很多路径,但我的CSS还没有应用。例如这些:
调用转发到 JSP 的 Servlet 时,浏览器无法访问/查找 CSS、图像和链接等相关资源
有可能我只是没有注意到其中的某些内容,但我尝试仔细阅读它们。
如果我可以提供任何可以使解决方案更接近的内容,请告诉我。
非常感谢您提前提供的帮助。
您可以使用
<c:url>
标签构建 css 文件的正确 url。另外,不要将静态内容与 JSP 混为一谈。在 Web 应用程序根文件夹中创建一个子文件夹 css
并在其中添加 .css 文件。然后如果你在lib文件夹中添加了正确的JSTL库文件,就可以使用
<link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css'/>">