【问题标题】:What are the different ways to show images in a Spring project? Not able to show static images在 Spring 项目中显示图像的不同方式有哪些?无法显示静态图像
【发布时间】:2019-04-30 07:10:42
【问题描述】:

我尝试了很多东西,但唯一能够显示图像的是使用以下代码:

<mvc:resources mapping="/imagesresources/**"
    location="/resources/images/" />

以下代码为例

<body background="../../resources/images/contactus.jpg">
<h2>Contact Us</h2> </body>

在 Eclipse 中,如果我按 ctrl+单击 body 标签,在下一个选项卡中打开会显示 contactus.jpg。但是当我启动 tomcat 时没有图像,当我转到控制台 bu F12 时,它会显示以下内容

Failed to load resource: the server responded with a status of 404 (Not Found)

另外,图片的网址显示为:

http://localhost:8080/resources/images/contactus.jpg

【问题讨论】:

    标签: spring spring-boot spring-mvc jsp


    【解决方案1】:

    您需要将 URL 定义为

    <body background="imagesresources/contactus.jpg">
    

    您的资源映射定义为

    <mvc:resources mapping="/imagesresources/**"
        location="/resources/images/" />
    

    Spring mvc 将所有资源配置为可通过您定义的映射访问,即/imagesresources/**

    就您的 Eclipse 行为而言,这与您的 Eclipse 项目有关。当您在 tomcat 上部署战争时,相对于您的 eclipse 项目,这些资源将无法访问。

    【讨论】:

    • 在src中使用和直接使用imagesresources/contactus.jpg有什么区别
    • @v0ld3m0rt 只要您不通过某些上下文变量评估 src 值,就什么都没有。在这种情况下,您有硬编码的预定义值 /jsp/index.htm 所以不需要首先使用
    【解决方案2】:

    在您的 MVC 项目 AppConfig 文件中 -> 覆盖 addResourceHandlers(ResourceHandlerRegistry registry) 方法。此类(从 WebMvcConfigurerAdapter 继承)和被覆盖的方法的处理程序用于从特定位置提供静态资源,例如图像、js 和 css 文件。

    请参阅此链接以获取完整的工作示例:http://www.technicalkeeda.com/spring-tutorials/spring-4-mvc-static-resource-mapping-example

    【讨论】:

    • 您正在使用基于旧 XML 配置来加载静态资产,我分享了如何使用“新资源解析器”为不同资产提供服务。清楚你需要什么。参考:baeldung.com/spring-mvc-static-resources
    猜你喜欢
    • 2023-03-11
    • 2017-03-05
    • 1970-01-01
    • 2021-10-17
    • 2015-12-17
    • 1970-01-01
    • 2012-07-02
    • 2018-10-29
    • 2017-04-04
    相关资源
    最近更新 更多