angularjs - 如何在Tomcat 9的rewrite.config文件中为多个angular项目添加多个重写规则

标签 angularjs tomcat angular-ui-router tomcat8 tomcat9

以下是我面临的问题,需要一些帮助。
初始问题:
我有一个 tomcat 服务器,我在其中部署了三个 angular 项目(在 web 应用程序文件夹中)。
当我启动 Tomcat 服务器时,会出现 angular 应用程序。一旦我登录到应用程序并浏览页面,然后尝试刷新 Angular 应用程序内的任何页面,它就会给我一个 404 错误。
初始问题的解决方案:
我得到了解决上述问题的解决方案,如下所示:

  • 将以下参数添加到 Tomcat 配置文件夹内的“server.xml”文件中。
    范围:-

  • 我在/config/Catalina/localhost/文件夹中创建了一个 rewrite.config 文件,并为所有 3 个 Angular 应用程序编写了重写规则。

  • 新问题:
    只有一个 Angular 应用程序正在运行,但所有其他应用程序的 index.html 页面都没有加载,并且在日志中我可以看到 304 错误。
    问题:有人可以建议如何在同一个 tomcat rewrite.config 文件中为不同的 angular 项目编写多个重写配置。
    更多详细信息:Angular 应用程序位于以下位置:
    Tomcat 路径/webapps/app1
    Tomcat 路径/webapps/app2
    Tomcat 路径/webapps/app3
    rewrite.config 文件内容:
    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app1/(.*) /app1/index.html
    
    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app2/(.*) /app2/index.html
    
    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app3/(.*) /app3/index.html
    
    只有 app1 正在加载,但 app2 和 app3 index.html 页面没有加载,并且 app2 和 app3 的 tomcat 日志有 304。
    请建议如何为多个 Angular 应用程序编写重写规则。

    最佳答案

    你确定只是第一个 而不是 仅第三个 在您的情况下是否正确送达?因为我认为您缺少 RewriteRule 标志 [L] ...最后一条规则:

    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app1/(.*) /app1/index.html [L]
    
    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app2/(.*) /app2/index.html [L]
    
    RewriteCond %{REQUEST_PATH} !-f
    RewriteRule ^/app3/(.*) /app3/index.html [L]
    

    关于angularjs - 如何在Tomcat 9的rewrite.config文件中为多个angular项目添加多个重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63969267/

    相关文章:

    angularjs - 来自CORS预检 channel 的CORS header 'access-control-allow-headers'中缺少 token 'Access-Control-Allow-Headers'

    javascript - 如何在 javascript 数据字段中绑定(bind) AngularJs 变量?

    angularjs - 在 angularJS : best practice? 中操作 DOM

    java - 带有 Java Server Faces 的 HTTPS

    angularjs - UI-Router state.go回调状态更改

    angularjs - 从指令中的链接调用 Controller 函数

    JavaScript 抛出错误 "Uncaught TypeError: Cannot set property ' value' of null"yet element is present

    database - TCP 连接和 Tomcat

    javascript - Angular url 中的 $locationProvider

    javascript - 使用 ui-router 实现动态 URL 路由的最佳方法是什么