【问题标题】:Link stylesheet to Servlet将样式表链接到 Servlet
【发布时间】:2016-09-08 08:05:23
【问题描述】:

我需要将名为“stylesheet.css”的stylesheet 链接到我的servlet。

我已经尝试在谷歌上搜索解决方案,但没有一个解决我的问题。

我的 index.html 的目录路径如下所示: /usr/share/tomcat/webapps/ROOT/WEB-INF/classes/index.html

我的样式表就在这里: /usr/share/tomcat/webapps/ROOT/stylesheet.css

在我的 index.html 中,我有以下行来获取我的样式表:

   out.println("<LINK REL='StyleSheet' HREF='/usr/share/tomcat/webapps/ROOT/stylesheet.css' TYPE='text/css'>");

我的错误在哪里?

【问题讨论】:

    标签: tomcat servlets


    【解决方案1】:

    您在href 属性中提供的“URL”实际上是您的服务器文件系统stylesheet.css 的路径 - 但浏览器通常无法访问此 FS,这可能是除非您正在开发 - 在与 servlet 引擎不同的机器上运行。

    这意味着您必须提供一个 URL,浏览器可以使用该 URL 联系服务器(通常通过 HTTP(S) 协议)并请求资源。在这种特殊情况中,href='/stylesheet.css' 应该足够了,因为您使用的是 ROOT webapp,所以上下文是空的(或/)。默认情况下,我会使用

    out.println("<LINK REL='StyleSheet' HREF='" + request.getContextPath() + "/stylesheet.css' TYPE='text/css'>");
    

    警告

    尽量避免在 servlet 中生成 HTML 输出。虽然它从一开始就很有用,只是为了了解事物是如何工作的,在实际项目中使用 MVC 或类似架构,并使用 JSP 来定义视图(或某些模板引擎,如 Freemarker)。

    【讨论】:

      【解决方案2】:

      找到了解决办法,只需要改成out.println("&lt;LINK REL='StyleSheet' HREF='stylesheet.css' TYPE='text/css'&gt;");

      同时仍保持与上述相同的目录路径

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 2022-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多