AngularJS模板不';我不能用弹簧工作

AngularJS模板不';我不能用弹簧工作,angularjs,spring,rest,spring-boot,Angularjs,Spring,Rest,Spring Boot,我在NetBeans IDE中使用Spring开发了一个REST应用程序。 以下是相关的dir结构: 我想将Angular功能集成到其中,但更愿意将其作为单个应用程序,而不是单独的Angular和Spring应用程序 主index.html文件应在首页显示模板home.html 问题: 将HTML文件添加到templates文件夹在Angular应用程序中似乎不起作用。如果我试图通过Angular访问index.html和home.html文件,我会得到404错误,但我可以直接打开它们 以下是

我在NetBeans IDE中使用Spring开发了一个REST应用程序。 以下是相关的dir结构:

我想将Angular功能集成到其中,但更愿意将其作为单个应用程序,而不是单独的Angular和Spring应用程序

index.html
文件应在首页显示模板
home.html

问题:

将HTML文件添加到
templates
文件夹在Angular应用程序中似乎不起作用。如果我试图通过Angular访问
index.html
home.html
文件,我会得到404错误,但我可以直接打开它们

以下是我的Spring应用程序中用于这两个文件的控制器:

@RequestMapping("/")
public String index() {
    return "index";
}

@RequestMapping("/home")
public String home() {
    return "home";
}
我以前自己编写过AngularJS代码,没有任何问题

  • 我是不是混合了一些我不该混合的东西
  • 我是否将所有AngularJS代码创建在一个单独的文件夹中,远离
    src/main/resources

Spring将放置在
src/main/resources/static
中的文件映射到应用程序的根目录。这意味着只要使用
/CSS
相对路径,就可以访问
src/main/resources/static/CSS/
文件夹中的CSS文件

因此,CSS、Javascript、模板或图像等静态资源应放在
Static
文件夹中,Angular将能够访问该文件夹

此限制不扩展到主
index.html
文件,您可以将其放置在主项目目录或
模板下


答案摘自JBNizet的注释。

既然您可以直接从浏览器访问这些文件,请打开浏览器的控制台“网络”选项卡,并将Angular发出的请求与有效的请求进行比较。您使用的是spring boot还是spring mvc?为什么要为静态文件定义控制器?@NikosParaskevopoulos有两个不同之处:工作请求的
请求URL
localhost:8080/home
,而
请求头
部分中没有
referer
。内容长度也短得多(21比306)。我想这是因为
home.html
文件只有几个字的文本。另外,还有两个非工作请求。@JBNizet Spring Boot。这个控制器是一个通用的。它包含其余后端逻辑(大约30个)的所有
@RequestMapping
s。我不需要这里显示的两个
@RequestMapping
吗?请阅读。静态资源应该在src/main/resources/Static下,而不是在src/main/resources/templates下。然后,您可以使用/index.html或/home.html直接访问它们,而无需任何RequestMapping。