Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring引导服务索引页_Java_Spring_Maven_Spring Mvc_Spring Boot - Fatal编程技术网

Java 使用Spring引导服务索引页

Java 使用Spring引导服务索引页,java,spring,maven,spring-mvc,spring-boot,Java,Spring,Maven,Spring Mvc,Spring Boot,我已经看遍了所有的地方,但我不知道我在打包的spring boot jar文件中提供index.html页面的方式有什么错。这是我的应用程序结构: 当我运行mvn clean install时,它会正确地打包jar,并将index.html文件放入jar中的静态文件夹中 这是我的MVC配置: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResource

我已经看遍了所有的地方,但我不知道我在打包的spring boot jar文件中提供
index.html
页面的方式有什么错。这是我的应用程序结构:

当我运行
mvn clean install
时,它会正确地打包jar,并将
index.html
文件放入jar中的静态文件夹中

这是我的MVC配置:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    registry.addResourceHandler("/static/**").addResourceLocations("/static/");
    registry.addResourceHandler("/app/**").addResourceLocations("/app/");
    registry.addResourceHandler("/**").addResourceLocations("/");
}
有什么我做得不好的吗

尝试将“类路径”添加到资源位置

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
尝试将“类路径”添加到资源位置

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

我相信你应该读一下,如何为静态内容服务:

总而言之,浏览器正在缓存静态资源,如CSS文件或html文件

为了打破这种行为,请尝试先清理浏览器缓存,在谷歌浏览器中进入“设置”,然后清除浏览数据

其次,将以下行添加到application.properties文件中,以破坏缓存:

spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
或者添加以下内容:

spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/**
spring.resources.chain.strategy.fixed.version=v12

我相信你应该读一下,如何为静态内容服务:

总而言之,浏览器正在缓存静态资源,如CSS文件或html文件

为了打破这种行为,请尝试先清理浏览器缓存,在谷歌浏览器中进入“设置”,然后清除浏览数据

其次,将以下行添加到application.properties文件中,以破坏缓存:

spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
或者添加以下内容:

spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.paths=/**
spring.resources.chain.strategy.fixed.version=v12

好的,多亏了多方的帮助,我把它修好了!以下是我为帮助其他人所做的:

1) 在POM中添加此资源。我仍然不知道为什么我需要这个,但没有这个我的应用程序将无法运行。Spring boot应该自动执行此操作,但显然不是

<resources>
    <resource>
        <directory>src/main/resources/static</directory>
        <targetPath>static</targetPath>
    </resource>
</resources>

在添加这两个东西之后,我的应用程序开始提供文件

好的,多亏了多方的帮助,我修复了它!以下是我为帮助其他人所做的:

1) 在POM中添加此资源。我仍然不知道为什么我需要这个,但没有这个我的应用程序将无法运行。Spring boot应该自动执行此操作,但显然不是

<resources>
    <resource>
        <directory>src/main/resources/static</directory>
        <targetPath>static</targetPath>
    </resource>
</resources>

在添加这两个东西之后,我的应用程序开始提供文件

在spring boot项目中,只需扩展WebMVCConfigureAdapter并覆盖addResourceHandlers即可实现此功能,如下所示

    @SpringBootApplication
    public class DemoApplication extends WebMvcConfigurerAdapter {

        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        }   
    }

在spring boot项目中,可以在上访问索引页,您只需扩展WebMVCConfigureAdapter并覆盖addResourceHandlers即可实现此功能,如下所示

    @SpringBootApplication
    public class DemoApplication extends WebMvcConfigurerAdapter {

        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        }   
    }

索引页将在

上访问,静态文件夹资源处理程序由Spring Boot提供。尝试删除您提供的自定义项并再次运行应用程序。您的页面应该可以从localhost:8080/index.html访问。如果您仍然有问题,请共享更多详细信息,例如HTTP响应和任何Java错误。不幸的是,我没有收到任何Java错误或HTTP错误(除了404)。是否需要任何其他配置来服务页面?我摆脱了我的自定义资源处理程序,但不幸的是,这没有起到任何作用:/Spring Boot提供了现成的静态文件夹资源处理程序。尝试删除您提供的自定义项并再次运行应用程序。您的页面应该可以从localhost:8080/index.html访问。如果您仍然有问题,请共享更多详细信息,例如HTTP响应和任何Java错误。不幸的是,我没有收到任何Java错误或HTTP错误(除了404)。是否需要任何其他配置来服务页面?我摆脱了我的自定义资源处理程序,但这没有起到任何作用。很遗憾,很高兴您自己能使用它。我相信还有别的事情正在发生,因为这应该是开箱即用的。如果你仍然好奇的话,可以发布一个链接到一个GitHub回购协议,该协议复制了这一问题。很高兴你自己能成功。我相信还有别的事情正在发生,因为这应该是开箱即用的。如果您仍然好奇,请发布一个链接,指向复制此问题的GitHub回购协议。