【发布时间】:2016-10-30 07:10:58
【问题描述】:
我正在构建一个 Angular 2 应用程序,该应用程序必须在后端使用基于 spring mvc 的 rest api。我正在使用 maven,而不是使用 spring-boot,并且希望将 angular2 的 index.html 映射到已部署的 WAR 文件的基本 URL。我看到 index.html 出现在 tomcat 的 webapps 文件夹中的 MyApplication 命名文件夹中,但是以某种方式尝试通过基本 URL 访问该站点没有提供可用的资源。有人可以帮助我。这是我的布局。
web.xml
<display-name>MyApplication</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
mvc-dispatcher-servlet.xml
<context:annotation-config/>
<context:component-scan base-package="com.rochak.*" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/angular/</value>
</property>
<property name="suffix">
<value>.html</value>
</property>
</bean>
com/rochak/controller 中的 MyController.java
@Controller
public class MyController {
@RequestMapping(value="*")
public String getIndex(ModelMap model){
return "index";
}
}
angular 文件夹位于 WEB-INF 文件夹中,其 index.html
为什么spring mvc找不到index.html?
【问题讨论】:
-
在你的 web.xml 中添加一个
-
您的请求映射应该是“/**”或主页的“/”。您还应该返回您的 index.html 文件所在的目录,它应该是 index.html 而不仅仅是索引。例如:@RequestMapping("/") public String appHome() { return "/build/index.html"; }
-
嗨 Rochak,你能在 WEB-INF 下发布 angular 目录结构吗?
标签: java maven spring-mvc tomcat angular