在 JAX-RS 上将 css 添加到 JSP

Add css to JSP on JAX-RS

我需要将 css 和 js 添加到 glassfish5 上的 jax-rs 应用 运行 中的 jsp 文件。 pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>elearning_ontology</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>elearning_ontology</name>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <junit.version>5.6.2</junit.version>
    </properties>

    <dependencies>

      

        <dependency>
            <groupId>javax.mvc</groupId>
            <artifactId>javax.mvc-api</artifactId>
            <version>1.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.krazo</groupId>
            <artifactId>krazo-jersey</artifactId>
            <version>1.1.0-M1</version>
        </dependency>



        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.owlapi</groupId>
            <artifactId>owlapi-distribution</artifactId>
            <version>5.1.17</version>

        </dependency>
        <dependency>
            <groupId>com.github.galigator.openllet</groupId>
            <artifactId>openllet-owlapi</artifactId>
            <version>2.6.5</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.0</version>
            </plugin>
        </plugins>
    </build>
</project>

我尝试使用相对路径或 c:url 添加 css 但没有机会:

     <link rel="stylesheet" href="<c:url value = "bootstrap-rtl.min.css"/>" media="screen">

<link rel="stylesheet" href="assets/css/bootstrap-rtl.min.css" media="screen">

当我查看页面源代码并单击 css url 时,我看到了一个 404 页面。我想我应该通过 Application 或 web.xml 做一些配置。但我不知道如何

P.S:它是一个 restfull mvc 应用程序。所以所有路线都通过控制器控制 class .
所以(也许)只能访问在控制器中定义或在配置文件中定义的路径。相对或绝对路径无效。

图为应用结构:

静态文件不需要在 WEB-INF 文件夹中。我们将 JSP 文件放在那里以保护它们免受 public 的影响。资源可以直接放在 src/main/webapp 文件夹中。这是默认 servlet 将提供静态文件的根目录。

假设您有以下结构

src/main/webapp
           |
           +--- assets
           |      |
           +      +--- css
           |            |
           +            +--- styles.css
           |
           +--- WEB-INF
                  |
                  +--- jsp
                        |
                        +--- products.jsp

在你的products.jsp页面

你可以使用的是下面的link
<link rel="stylesheet" href="<c:url value="/assets/css/styles.css"/>" />

由于我们使用 c:url,它会为我们添加基础 URL 一直到上下文路径,即 http://localhost:8080/<app-name>/。将路径添加到 CSS 页面,我们将有

http://localhost:8080/<app-name>/assets/css/styles.css

这正是我们想要的。当浏览器发出对此页面的请求时,默认的 servlet 将从我们当前拥有它的位置提供它。