java - 在 spring boot 中添加外部静态文件(css、js、png ...)

标签 java spring spring-mvc spring-boot thymeleaf

背景


我有一个 spring boot 应用程序,它已将 logo.png 文件添加到资源文件的 static 文件夹中,最终内置到执行中使用的 jar 文件中。

此 jar 应用程序需要在不同客户端的多个实例中运行。所以我所做的是创建一个外部 application.properties 文件来区分每个用户的设置。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

问题


但问题是,我需要更改应用程序每个实例的 Logo 。我无法将客户 Logo 嵌入到我的应用程序 jar 中。相反,我需要像我的 application.properties 一样将它保存在外部。

目前,我所做的是在执行的jar 的同一文件夹中检查文件logo.png,如果存在,则读取该文件,获取 base64 数据并将其显示在 img 标签中。

但我希望以适当的方式将其作为静态内容来完成。我需要将静态内容外部化。 这样我就可以让每个客户都有一个运行不同静态资源内容的 jar 的特定实例

例如。我需要保留如下外部静态文件,并从我 View 中的 url 访问 hrefsrc html 标签的属性。

总结


所需的文件夹结构

+ runtime
  - myapp-0.1.0.jar
  - application.properties
  + static
    - logo.png

应该可以访问

<img th:src="@{/logo.png}" />

最佳答案

您可以使用资源处理程序来提供外部文件 - 例如

@Component
class WebConfigurer extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("/ext/**").addResourceLocations("file:///yourPath/static/");
    }

}

关于java - 在 spring boot 中添加外部静态文件(css、js、png ...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966832/

相关文章:

java - 震动 : Mathematical conditional spec

java - 如何在不吃下一个整数的情况下检查下一行?

java - 带有 alter table 的 Spring Jdbc 原子性

java - 通过示例在 MongoRepository 查询中包含 Null 检查

java - Spring mvc servlet url 未正确映射

java - 将文件转换为字节数组并通过 UDP 传输。如何从这个字节数组中获取服务器上的文件名?

java - Spring Data 的 MongoTemplate 和 MongoRepository 有什么区别?

java - 2.1.6 Spring Boot-Elasticsearch Healthcheck失败

java - 检查@RequestMapping - 单元测试

java - WebLogic 12c 和 Spring MVC 错误 403