routing - 当部署在服务器上时,页面重新加载在 Angular 6 中找不到 404
问题描述
我的 angular 中有一条名为 /explore 的路线。在本地运行时,如果我导航到它显示的路线确实有效,并且如果我重新加载它也会重新加载。我在 ubuntu 16.04 服务器上部署了相同的代码,并使用 http-server 运行它。问题是,如果我点击它确实导航的路线,但如果我重新加载页面,它会显示“404 - 找不到页面”。. 我发现一个简单的解决方法是使用“HashLocationStrategy”,但它会将 # 添加到 url。任何帮助表示赞赏。
解决方案
如果您还没有完成,则将 .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 中设置的路由。我希望这会有所帮助,但如果没有,请告诉我。
推荐阅读
- c# - 如何保持 splitcontainer 面板大小成比例?
- java - 如何删除字符串中的额外换行符
- sql - 使用 UNIQUE NOT NULL 列时我真的需要 PRIMARY KEY 吗?
- html - 视频未下载 HTML 视频标签
- r - 正态分布bayesAB - 负均值
- r - 使用循环序列的值创建和命名新变量
- salesforce - NLP算法可以在Force.com平台上运行吗?
- groovy - java.lang.ClassCastException:将两个数字作为字符串进行比较时抛出 geb.content.TemplateDerivedPageContent
- javascript - 如何使用 Javascript/jQuery 从 FTP 服务器强制下载而不是在 Chrome 中打开 srt 文件?
- r - 找到偶数个字符的最长单词