当前位置: 首页 > 知识库问答 >
问题:

使用Spring Boot隐式index.html

邬楚青
2023-03-14

我有一个简单的Spring Boot Starter Web应用程序。我想提供几个静态html文件。

我知道我可以使用Spring Boot提供静态文件,只需简单地将其放入我的src/main/Resources/静态子目录。

当我创建文件(例如)/静态/docs/index.html时,我可以通过http://localhost:8080/docs/index.html访问它。

我想要实现的是只需使用http://localgost:8080/docs其中索引。html是由Spring隐式添加的。

我需要通过localhost:8080/{path}路径在资源中的/静态/{path}/index.html中提供静态文件。

我知道我可以在控制器中手动创建映射,但当有许多文件要提供服务时,这就变得很烦人了。


共有1个答案

虞华翰
2023-03-14

这会有用的

@Configuration
public class AppConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/docs").setViewName("forward:/docs/index.html");
    }
}

或所有静态子目录的可能解决方案(丑陋版本)

public void addViewControllers(ViewControllerRegistry registry) {
    File file;
    try {
        file = new ClassPathResource("static").getFile();
        String[] names = file.list();

        for(String name : names)
        {
            if (new File(file.getAbsolutePath() + "/" + name).isDirectory())
            {
                registry.addViewController("/" + name).setViewName("forward:/" + name +"/index.html");
            }
        }
    } catch (IOException e) {
        // TODO: handle error
        e.printStackTrace();
    }
}
 类似资料:
  • 我有一个结构,下面的运算符声明: 仅此运算符就可以将不可为null的结构隐式转换为int,但尝试隐式转换其可为null的对应结构仍会引发编译错误: 无法隐式转换类型

  • 问题内容: 我是初学者。我了解基本等待的内容,但是我对互联网上的不同教程如何放置并进行解释感到困惑。例如,在下面的代码中,将其放置在加载URL之前。因此,是否只是等待URL加载或查找元素或两者兼而有之?的确,如果我在try块中使用一次隐式等待,它是否适用于我在代码中执行的每个元素搜索? 问题答案: 隐式等待 ImplicitWait按照该Java文档是指定的时间量 webdriver的 情况下,即

  • 我是初学者。我了解Wait的基本功能,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它是在加载URL之前放置的。那么,是只等待加载URL,还是等待查找元素,或者两者都是?如果我在try块中使用隐式等待一次,它将适用于我在代码中执行的每个元素搜索,这是真的吗?

  • 问题内容: 想要有关对象的某些调试信息时,我曾经使用toString的隐式调用,因为在对象为null的情况下,它不会引发Exception。 例如: 代替: 除了null以外,还有什么区别吗? 如果前者不起作用,后者可以工作吗? 编辑: 在隐式调用的情况下,到底做了什么? 问题答案: 没有什么区别。使用较短且经常使用的那一种。 如果您实际上由于其他原因想要获取对象的字符串值,并且希望它为null友

  • 一、隐式转换 1.1 使用隐式转换 隐式转换指的是以 implicit 关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能。示例如下: // 普通人 class Person(val name: String) // 雷神 class Thor(val name: String) { // 正常情况下只有雷神才能举起雷神之锤 def hamm

  • 我似乎无法理解为什么我从identityserver获取未经授权的客户端。我使用带有Angular 4 ui和asp.net核心web API的oidc客户端。我无法连接到identity server,因为每次它返回时,我的客户端都是未经授权的客户端。 这是已注册的客户端: 这是Angular中的身份验证服务: 最后,我像这样调用identityserver: 发送的请求如下:http://lo