我的猜测是您的web.xml将任何路径映射到Spring DispatcherServlet,例如:
<servlet> <servlet-name>app</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>
由于
<url-pattern>/</url-pattern>任何请求都必须由Spring控制器处理,因此,Tomcat不提供静态文件。同样的模式
/*.html也会有相同的效果。
如果只有几个页面,则可以在Spring的映射 之前* (如果使用的话,在Spring Security 之前)
,向它们的预定义默认servlet添加一个或多个映射: *
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>index.html</url-pattern> </servlet-mapping>
您也可以使用,
<url-pattern>*.html</url-pattern>或者,如果您的资源在
web路径下并且那里只有静态资源:
<url-pattern>/web/*</url-pattern>
也许所有这些操作都可以在Java代码中完成,而
org.ema.server.ServerEntryPoint您在web.xml中具有侦听器
我认为我写的映射
web.xml是在您的情况下在
getServletMappingsclass
方法中完成的
org.ema.server.spring.config.AppInitializer,我将其更改为使用比 更加严格的模式
,不确定模式是否正确并且其他所有方法都可以正常工作,但现在可以正常工作
/rest-api/*``/``http://127.0.0.1:8080/index.html
@Overrideprotected String[] getServletMappings() { return new String[] { "/rest-api/*" };}


