【问题标题】:is there anyway to access to the deployed html files in a spring boot app?无论如何可以访问spring boot应用程序中部署的html文件吗?
【发布时间】:2015-10-30 14:31:28
【问题描述】:

就像在 tomcat 中部署并且可以访问和修改前端而无需重新启动整个 tomcat 服务器一样,是否可以找到这些文件的位置并为使用 spring 创建的应用程序修改它们(无需再次编译)开机?我只有jar,但我知道应该是tomcat部署文件的地方,知道在哪里吗?

谢谢

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    您可以将您的应用配置为从文件系统的某个文件夹中提供静态文件:

    @Configuration
    public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/files/**")
                    .addResourceLocations("file:/opt/files/");
        }
    }
    

    对于 Windows 用户,路径为: “file:///C:/MyDocs”

    【讨论】:

    • 谢谢,但是一旦部署,文件的默认位置在哪里?
    • 文件在 jar 里面,它是 Jar 而不是 War,另一种方法是将 JAR 转换为 WAR 并将其部署在像 tomcat 这样的 web 容器中
    【解决方案2】:

    您可以在 java 运行时中获取特定的当前执行路径,然后从那里开始。了解标准 WAR 或 EAR 结构将有助于检查这一点

    Get the location of my web application context

    遍历这个Directory Structure of EAR/WAR/JAR中的目录结构

    问题不是修改而是加载修改后的路径/文件。有一个术语叫热部署。你正在让它变得更热哈哈!每当您更改特定文件时,应用程序服务器都需要重新加载特定的 WAR 或 EAR(如果更改的文件是类文件或 java 文件)。通常,在应用程序运行时所做的 JSP 和 HTML 文件更改在重新加载时可用。

    如果特定文件在 JAR 中,您可能需要重新编译 jar 并将其重新部署/重新加载到您的应用程序中。这可能会有所帮助Loading jar at runtime/dynamically

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 2017-12-13
      • 2023-02-03
      • 1970-01-01
      • 2020-01-09
      • 2020-08-28
      • 1970-01-01
      • 2021-01-14
      • 2021-03-19
      相关资源
      最近更新 更多