这是不是你的问题?
不用担心马上就能解决
SpringBoot访问静态资源文件
springBoot中整合springMvc 默认 src/main/resources/static 为静态资源文件夹
如下方结构:我们想访问a.txt文件,假设启动端口为8080,那么访问路径就是 http://localhost:8080/a.txt。
如果是vue打包文件,因为打包生成的是index.html,我们知道index文件是可以省略不写的,那么他的访问路径就是 http://localhost:8080
如果访问失败请关闭idea重新启动(idea老神经了,唉!)
如果vue你使用的是history模式,会发现刷新之后又错了,hash模式没有影响。那怎么办呢?等会再说我们先看springCloud+gateway如何访问静态文件
SpringCloud+Gateway访问静态资源
那么我们如果使用的springCloud+gateway网关怎么办呢,它会自动转发吗?当然不会,它那么多模块它怎么会知道访问哪个的static,这个时候我们就需要使用gateway的断言指定一个模块的static是作为静态文件夹。
- 这里我们有两个模块:userserver ,orderserver
其中 /user/ 前缀的请求转发给了userserver,/order/前缀的请求转发给了orderserver- 值得注意的是,在orderserver模块中我还设置了一个 /**的断言,通过这个我们就可以指定orderserver的static文件夹为静态资源文件夹
- 假设gateway模块的端口为8082那么当我们请求oderserver模块static下的a.txt时只需要访问http:localhost:8082/a.txt即可。同样,如果文件为index.*可以省略不写。
如果访问失败,重启idea(再次吐槽)
解决vue打包访问时刷新出现错误页面的问题
好了无论是SpringBoot 还是SpringCloud+Gateway我们都能访问到文件了,那么我们来解决vue History模式刷新就出现错误页面的问题
我们只需要作为静态资源文件的模块,注意一定要是这个模块。在这个文件中注入一个配置几个
方法一: 在启动类中配置
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> myWebServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
factory.addErrorPages(error404Page);
}
};
}
我们并不提倡第一种写法,我们要时刻记得java的封装特性
方法二:创建一个配置类 VueHistoryConfig
@Configuration
class VueHistoryConfig {
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> myWebServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
factory.addErrorPages(error404Page);
}
};
}
}
好了,结束。我测试的没有问题,如果出错请认真检查🥰🥰🥰