当前位置: 首页 > 面试题库 >

Spring Boot无法在webapp文件夹下找到index.html

曾宏毅
2023-03-14
问题内容

我从spring.io阅读了以下文档,但它说,By default Spring Boot will serve static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath但是当我将index.html文件放在 字符串下时/resources,才呈现出来。目前在webapp下,我 正在使用AngularJS
indexindex.html

MvcConfiguration

@Configuration
public class MvcConfig {

    @Bean
    InternalResourceViewResolver viewResolver(){

        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/webapp/");
        resolver.setSuffix(".html");

        return resolver;
    }

}

Restful Service for index page

@RestController
public class IndexController {

    @RequestMapping("/")
    public String index(){
        System.out.println("Looking in the index controller.........");
        return "index";
    }

}

在我的IDE控制台上,我确实看到了 从IndexController Looking in the index controller......打印的内容
,并且在Chrome开发工具中的网络下面看到了该内容,但我只能
看到localhost 200

index.html

<body>

  <!--[if lt IE 7]>
      <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
  <![endif]-->

  <div ng-view></div>

  <div>Angular seed app: v<span app-version></span></div>

问题答案:

Spring Boot docs also says:

如果您的应用程序将
打包为jar,则不要使用src / main / webapp目录。尽管此目录是一个通用标准,但它
仅适用于war打包,
如果生成jar ,大多数构建工具都将默默地忽略该目录。

Spring Boot非常自以为是,当您不尝试抵制
默认值时,它会发挥最佳作用。我看不到将文件放入的任何原因
/src/main/webapp。仅/src/main/resources/static用于您的前端
资产。那是最常见的地方。

它将自动从根URI提供这些静态文件,而无需
创建任何根级别Controller。实际上,您IndexController
阻止从根URI提供静态前端文件。完全不需要
创建Controller静态文件。

另外,您的应用程序不需要视图解析器。您的应用只是
单页角度应用所使用的REST API 。因此,您的HTML模板位于
客户端。如果要进行服务器端HTML模板化
(例如,使用Thymeleaf或JSP),则需要视图解析器。所以也去掉那一块。



 类似资料:
  • 我是新春尝试简单的webapp。 使用springboot 2.1.0application.properties如下文件。我在src/main/webapp/WEB-INF/jsp中有jsp文件 我的控制器是。 当我将jsp文件放在/main/resources/META-INF/resources/WEB-INF/jsp中时,它可以正常工作,否则会出现以下错误 pom还具有tomcat嵌入ja

  • 文件夹结构: 我无法到达资源/静态文件夹下的test.html: http://localhost:8080/test.html(不工作) 但是能够达到指数。以下为html: http://localhost:8080/index.html(工作) 从Spring Boot文档中,似乎我应该将所有静态内容置于 /src/main/resources/static 额外信息:

  • 文件名的开始是相同的,但结束是动态的,每次我点击下载时都会改变 我所做的: 你能帮忙吗

  • 问题内容: 我正在尝试从dataTable内部的graphicImage更新一个dataTable。我尝试了很多f:ajax渲染值的组合,但是都没有成功,现在我使用的是PrimeFaces的p:component函数,但是之前遇到了相同的错误。我在浏览器中收到此错误: f:ajax包含未知ID’j_idt690:painelTabelaAPDespesa’-无法在组件j_idt735的上下文中找到

  • 我正在尝试直接在我的源资源文件夹中读取和写入文件。 观察其他问题,如Spring Boot访问缺少scr/main/resources的静态资源,我已经能够使用获得输出文件夹: 输出/资源/sql 是不是可以拿到实物资源文件夹 /src/test/resources/sql (我需要它进行测试,这就是为什么我写了/test/,但我认为/main/的解决方案也会帮助我) 笔记 我知道阅读这不是问题,

  • 我已经创建了一个SpringBoot应用程序,并且我将Application.properties放置在jar文件的同一个文件夹中。这是文件的内容: 当我在jar文件夹外运行/bin/java-jar/opt/apl/org.web.exemplo-java-maven.1.0.0-90/org.web.exemplo-java-maven-1.0.0-90.jar时,它不读取applicatio