[英]How to url rewrite with Google app engine — HTML5 mode not working
我正在为我的应用程序使用Java Angularjs。 最初,我使用tomcat运行我的应用程序。 当我运行项目时,它将打开URL
所以我将基本标记和html5模式配置为
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('');
<base href="/projectname/">
在web.xml中将欢迎文件配置为main.html,我添加了代码
<welcome-file-list>
<welcome-file>main.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
使ui-router在html5模式下工作(在ui-router问题页面中提到)。
然后我将项目更改为Google App Engine标准Java项目,并在运行项目时使用url打开
所以我将基本标签更改为
<base href="/">
与此相关,在main.html中没有问题,但是我的路由不起作用。 当我使用$ state.go它的工作。 但是在刷新或手动输入网址时,出现404错误。 我的控制台错误是
WARNING: No file found for: /url
我提到了很多博客,但仍然对配置感到困惑
我已经在web.xml文件中配置了spring
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
看来它正在将所有url请求映射到spring,有什么办法解决吗?
问题在于刷新页面,如果您打开基础并单击将起作用的任何链接,则需要编写代码以重写URL
对于运行IIS的应用程序,我们需要添加:
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
对不起,我从来没有和tomcat一起工作过
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.