gpt4 book ai didi

angular - Tomcat 重写规则 Angular 5 应用程序?

转载 作者:行者123 更新时间:2023-11-28 22:00:55 25 4
gpt4 key购买 nike

我在 Angular 5 中开发了一个包含 Routing 的应用程序,并使用 ng build --base-href/myApp/--prod 构建了它。现在我想将它部署在我的笔记本电脑上本地运行的 tomcat 服务器上。

问题是,每当我在浏览器中重新加载我的应用程序页面时,我都会收到错误消息:

404 The requested resource is not available

我在互联网上搜索了解决策略,但没有找到对我有帮助的东西。我很确定我必须声明一些 Rewrite 规则,但我不知道它们应该是什么样子以及我必须在哪里声明它们。

有人知道如何解决这个问题吗?提前致谢。

最佳答案

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

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

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

<强>1。在 server.xml 中配置 RewriteValve

编辑 ~/conf/server.xml 以在 Host 部分添加以下 Valve,如下所示 –

...
<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 文件。注意 - 这里我将 /myApp 视为应用程序的上下文路径。

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

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

可以引用this post了解更多详情。

关于angular - Tomcat 重写规则 Angular 5 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51597504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com