1

我正在使用 Angular 6 在 tomcat 上部署应用程序时遇到了一些问题

我有 Base href = /login/

当我转到像您在下面看到的任何页面时,忘记 routerlink 它可以工作,但是当我刷新或直接打开http:localhost:8088/login/forget 时,它不会显示此页面,它显示的服务问题类似于 2 图像

在此处输入图像描述

这是重新加载页面后

在此处输入图像描述 在开发模式下一切正常,没有任何错误

我用来部署应用程序的步骤

  1. 1.ng build --prod --base-href /login/
  2. 复制 dist 文件夹文件
  3. 去 Apache Software Foundation\Tomcat 8.5\webapps\ 并创建登录文件夹
  4. 将所有dist文件夹文件粘贴到tomcat登录文件夹中,如下所示
  5. 启动tomcat服务器

在此处输入图像描述

4

3 回答 3

1

我在“app.module.ts”中使用它(查看这个链接,我得到了一些帮助:“https://medium.com/tinywave/angular-6-404-error-during-refresh-after-deployed-8cec7140b584 ")

import { HashLocationStrategy, LocationStrategy  } from '@angular/common';

providers: [
            {provide : LocationStrategy , useClass: HashLocationStrategy}
           ],

导入后,该站点运行良好并调用了 spring 服务,但是,我在同一页面中重新加载了 CRUD,并且有同样的事情。

于 2021-11-21T04:19:35.770 回答
0

只需复制所有这些文件并将它们粘贴到 tomcat 中 /webapps 文件夹下的 /angular 文件夹中。

复制后,启动服务器并访问 localhost:8080/angular/index.html,应该可以看到我们的自行车应用程序正在运行。

=====或========

打开 index.html 文件,将 base-href="/angular/" 替换为 base-href="." 并重新启动tomcat并访问url。

或者

对于每个脚本标签,在 src 标签中添加“angular/”,例如

所有做任何建议的更改,在浏览器中刷新页面。错误将消失。

于 2019-05-20T08:13:46.460 回答
0

如果没有服务器上的重定向规则,应用程序深层链接将无法工作。index.html所有深层链接都必须由服务器重定向到应用程序。

要设置 tomcat 以重定向任何深层链接 -

  1. 在 server.xml 中配置 RewriteValve
  2. 在 rewrite.config 中写入重写规则

1.在server.xml中配置RewriteValve

编辑 ~/conf/server.xml 以在 Host 部分中添加以下 Valve,如下所示 -</p>

...
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

...
      </Host>
...

2.在rewrite.config中写入重写规则

创建目录结构 - ~/conf/Catalina/localhost/ 并在其中创建 rewrite.config 文件,内容如下 -</p>

RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/login/(.*) /login/index.html

设置好后重启 tomcat 服务器,您可以点击应用程序的深层链接,这些链接将路由到 Angular 应用程序内的正确组件。

您可以参考这篇文章了解更多详情。

于 2019-09-04T16:46:38.623 回答