【问题标题】:How to reference a .css file from a view (.jsp) in Spring MVC?如何从 Spring MVC 中的视图 (.jsp) 引用 .css 文件?
【发布时间】:2013-05-11 19:21:29
【问题描述】:

这是结构:(它们在同一个目录中!)

Directory
|-view.jsp
|-stylesheet.css

当我做<link href="stylesheet.css" rel="stylesheet" media="screen"> .css 文件没有被正确引用,即我不知道要设置什么路径才能访问它(如果将其作为 URL 放在浏览器中,我会得到 404)。

我猜它被翻译为http://localhost:8080/myApp/stylesheet.css,然后没有为它定义映射。日志说:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/myApp/stylesheet.css] in DispatcherServlet with name 'appServlet'

它应该像这样工作,不是吗?例如,这有效:

<%@ include file="include.jsp"%>

include.jsp 也在同一个文件夹中。

【问题讨论】:

    标签: spring model-view-controller relative-path


    【解决方案1】:

    JSP 视图和存储在WEB-INF/ 下的其他资源最终用户无法直接访问,它们是 Web 应用程序的私有资源,服务器不会公开它们。您必须将任何公共资源置于WEB-INF/ 之上一级,例如:

    webapp/
    |-- 风格/
    |样式表.css
    |-- 图片/
    | image1.png
    |图像2.png
    |-- html/
    |索引.html
    +- 网络信息/
      +-- jsp/
            视图.jsp
            包含.jsp

    【讨论】:

    • 那么JSP(不是最终用户)如何访问资源(CSS),具体来说应该是什么路径webapp/WEB-INF/jsp/view.jsp 设置为 href 来引用这个 webapp/style/stylesheet.css?
    • @Bloke JSP 不访问 CSS,用户的浏览器可以访问。并且浏览器在WEB-INF下找不到资源
    • JSP 模板被呈现为纯 HTML 并暴露在一些可公开访问的 URL 下;您可以使用 CSS 的绝对路径(即“/myApp/style/stylesheet.css”)或相对路径(取决于页面映射到的 URL;如果它位于 webapp 的根目录中,例如 /myApp/index.html,它将是“style/stylesheet.css”,如果它在不同的级别,例如/myApp/subdir/page.html,它将是“../style/stylesheet.css”)
    • 如何将 放入 index.html.if 想要导航到 web-inf 文件夹中的 view.jsp?
    猜你喜欢
    • 2019-11-27
    • 2016-04-29
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多