Я исправил это в прошлом, создав фильтр сервлетов, чтобы поймать 404-е и ответить содержимым
аюсь установить для поставщика местоположения маршрутизатора пользовательского интерфейса html5Mode значение true для моего приложения Angular:locationProvider.html5Mode(true)
, Хотя это работает на стороне клиента (соответственно перенаправляет), я сталкиваюсь с проблемами на стороне сервера. Я использую экземпляр Java Enterprise Edition на Google App Engine.
Я настроил свойweb.xml
как указано дляРаздел Java EE в Angularui-router
Часто задаваемые вопросы:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>
<!-- stuff specific to my GAE app -->
</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
К сожалению, даже с вышеупомянутой конфигурацией, когда я просматриваю клиентские маршруты, я все еще получаю ошибку 404 от сервера. Я пробовал разные значения (/index.html
, index.html
) дляerror-page > location
элемент с тем же результатом.
Возможно, мне не хватает чего-то очевидного в моей конфигурации, но я не понимаю, что я делаю неправильно.