【问题标题】:IBM WebSphere deploy Angular 5 application and getting 404 on refreshIBM WebSphere 部署 Angular 5 应用程序并在刷新时获得 404
【发布时间】:2018-04-26 07:56:07
【问题描述】:

我使用 Angular(当前版本 5)构建全栈应用程序通常后端是 Windows Server 并且它使用 IIS ,因此我知道使用重写模块代码部署 web.config 文件。

问题是该站点是一个 SPA ,它需要始终指向 index.html,无论 URL 说什么...

如我所说,我习惯 windows ,但后端是 Java 和 IBM Websphere

有人知道我需要做什么才能拥有一个正常工作的 Angular 应用程序吗?

例如,WINDOWS 的配置是如下所示的 web.config,但这是带有 Java 应用程序的 Websphere,我假设后端是 Linux/unix

<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Angular Routes" 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="/MyApp/" />
      <!--<action type="Rewrite" url="/" />-->
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>

【问题讨论】:

    标签: java linux angular unix websphere


    【解决方案1】:

    您需要将以下内容添加到 web.xml,该文件打包在您应用的 .war 文件中的 WEB_INF 目录中:

    <error-page>
        <error-code>404</error-code>
        <location>/</location>
    </error-page>
    

    这会告诉应用服务器在发出 404 错误时在应用程序的上下文根中显示资源。

    【讨论】:

    • 谢谢,让我请团队中的人尝试一下
    • 酷。我从开发人员那里收到的电子邮件是“嗨,汤姆,感谢您对此进行调查。是的,这解决了 404 错误,我已经部署了一个带有修复程序的新版本。不知何故,它甚至可以使用“返回”来处理基本导航”、“前进”按钮和地址栏,不知道为什么,需要仔细研究一下。“谢谢,
    • 导航之所以有效,是因为 Angular 的路由器模块会解析 URL,并将其与您配置的路由进行模式匹配。它还使用 HTML5 中引入的一些调用来操作浏览器历史堆栈,因此每次路由更改看起来都像是真正的页面导航。
    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 2015-06-22
    • 2015-08-02
    • 1970-01-01
    • 2020-10-16
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多