【问题标题】:Refreshin angular build shows 404 Not Found Error on Apache ServerRefreshin 角度构建在 Apache 服务器上显示 404 Not Found 错误
【发布时间】: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  

【问题讨论】:

标签: angular


【解决方案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 你猜对了,它真的帮了我很大的忙
    猜你喜欢
    • 2019-12-09
    • 2016-09-02
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多