首页 > 解决方案 > 当部署在服务器上时,页面重新加载在 Angular 6 中找不到 404

问题描述

我的 angular 中有一条名为 /explore 的路线。在本地运行时,如果我导航到它显示的路线确实有效,并且如果我重新加载它也会重新加载。我在 ubuntu 16.04 服务器上部署了相同的代码,并使用 http-server 运行它。问题是,如果我点击它确实导航的路线,但如果我重新加载页面,它会显示“404 - 找不到页面”。. 我发现一个简单的解决方法是使用“HashLocationStrategy”,但它会将 # 添加到 url。任何帮助表示赞赏。

标签: routingangular6

解决方案


如果您还没有完成,则将 .htaccess 文件添加到您的网络服务器的根文件夹(它是您部署应用程序的文件夹),其中包含以下内容:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

这里发生的是您要求网络服务器在错误时返回 index.html - 例如 404 错误。Angular 将接管并使用您在 Angular 中设置的路由。我希望这会有所帮助,但如果没有,请告诉我。


推荐阅读