【问题标题】:404 Error when reload page in a Tomcat web application在 Tomcat Web 应用程序中重新加载页面时出现 404 错误
【发布时间】: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/loginclick2profit.it/#/login并重新加载页面得到404错误
  • 您必须将服务器配置为始终指向虚拟目录的应用程序入口点
  • @charlietfl 你能说得更具体点吗?

标签: java angularjs tomcat http-status-code-404 spark-java


【解决方案1】:

您是否根据spark java documentation. ? 中的“其他 Web 服务器”部分正确地将过滤器包含在 web.XML 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-20
    • 2019-05-17
    • 2018-10-21
    • 2022-12-14
    • 2020-01-22
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多