【发布时间】:2016-05-07 03:20:47
【问题描述】:
我已经使用 spark-java 和 angularJS (ui-router) 在 Tomcat9 Web 服务器上部署了一个 Java Web 应用程序。当我尝试重新加载页面时,tomcat 将启动HTTP Status 404。除了主路径“/”之外的所有视图都会发生这种情况。
Tomcat 映射到 80 端口,由 root 用户启动,应用已部署在 webapps/ROOT 文件夹中。我真的不知道该怎么办。
我也在 app.js 中使用了 html5mode:
app.config(["$locationProvider", function($locationProvider) {
$locationProvider.html5Mode(true);
}]);
并在index.html<head>中添加<base href="/">
更新:
在我的 server.xml 中,我添加了以下代码:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>
</Host>
在 /conf/Catalina/localhost/rewrite.config 中:
RewriteRule ^/(.*) index.html [L]
现在我对所有导入的脚本都有这个控制台错误:
Uncaught SyntaxError: Unexpected token <
看起来它用index.html文本替换了所有脚本。
【问题讨论】:
-
它的工作地点:click2profit.it/#/login
-
我不知道您使用的是什么浏览器,但 Chrome 会从 URL 中删除 #。我在 app.js 中使用 html5mode:
app.config(["$locationProvider", function($locationProvider) { $locationProvider.html5Mode(true); }]); -
无论如何你必须去click2profit.it/login或click2profit.it/#/login并重新加载页面得到404错误
-
您必须将服务器配置为始终指向虚拟目录的应用程序入口点
-
@charlietfl 你能说得更具体点吗?
标签: java angularjs tomcat http-status-code-404 spark-java