Refreshin 角度构建在 Apache 服务器上显示 404 Not Found 错误
Posted
技术标签:
【中文标题】Refreshin 角度构建在 Apache 服务器上显示 404 Not Found 错误【英文标题】:Refreshin angular build shows 404 Not Found Error on Apache Server 【发布时间】:2019-01-13 08:58:54 【问题描述】:我正在 Angular 6 中创建 ng build --prod,并将其部署到 Apache 服务器。 构建工作正常,但是当我刷新页面时,它显示“未找到”。 我还在我的根文件夹中创建 .htaccess 文件...
RewriteEngine On
RewriteCond %DOCUMENT_ROOT%REQUEST_URI -f [OR]
RewriteCond %DOCUMENT_ROOT%REQUEST_URI -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html
【问题讨论】:
看看那个:***.com/questions/18406156/… 【参考方案1】:您应该阅读说明如何部署 Angular 应用程序的文档:Angular deployment。
路由应用必须回退到 index.html
Angular 应用程序非常适合使用简单的静态服务 HTML 服务器。您不需要服务器端引擎来动态 编写应用程序页面,因为 Angular 在 客户端。
如果应用使用 Angular 路由器,您必须将服务器配置为 在被要求提供文件时返回应用程序的主机页面 (index.html) 它没有。
路由应用程序应支持“深层链接”。深层链接是 URL 指定应用程序内部组件的路径。例如, mysite.com/heroes/42 是英雄详情页面的深层链接 显示 id 为 42 的英雄。
当用户从一个 运行客户端。 Angular 路由器解释 URL 和路由到 那个页面和英雄。
有几个 Web 服务器的配置示例。
【讨论】:
【参考方案2】:其中一个可能的原因可能是您在子目录中进行部署。
改变这一行
RewriteRule ^ /index.html
到
RewriteRule ^ /subDirectoryName/index.html
希望这会有所帮助。
【讨论】:
您假设他在子目录中提供应用程序,但他从未说过。 我过去曾帮助 2 位 React 开发人员修复 404 问题。两者都在子目录中为应用程序提供服务。我假设与 Angular 相同(在这种情况下)。 你不应该根据过去的情景假设什么。 感谢 Faheem 你猜对了,它真的帮了我很大的忙以上是关于Refreshin 角度构建在 Apache 服务器上显示 404 Not Found 错误的主要内容,如果未能解决你的问题,请参考以下文章