【问题标题】:Angular 13 app deployed on apache server throwing 404 Error on refresh部署在 apache 服务器上的 Angular 13 应用程序在刷新时抛出 404 错误
【发布时间】:2022-06-20 04:44:45
【问题描述】:

我创建了一个原型网络应用程序,需要在 ubuntu 操作系统上的 apache 服务器上进行部署。 我已经构建了我的网络应用程序并托管在本地机器上以运行测试。 我已经启用了 .htaccess 的设置,

RewriteEngine on

# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]  
RewriteCond %{REQUEST_FILENAME} -d  
RewriteRule ^ - [L]

# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]

现在,我的屏幕 url 看起来像,http://localhost/PROJECT-NAME/user/31/case/99 这样的 URL 正在从index.php 中的另一个链接重定向,一旦加载了 angular 页面,一切都很好,当我刷新浏览器时,它给我一个404 Error

可用的环境是,

Angular CLI: 13.3.3
Node: 14.17.4
Package Manager: npm 8.7.0
OS: linux x64

Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.1303.3 (cli-only)
@angular-devkit/core         13.3.3 (cli-only)
@angular-devkit/schematics   13.3.3 (cli-only)
@schematics/angular          13.3.3 (cli-only)

可以在这里帮助我吗?到目前为止,我尝试了各种 .htaccess 和技术..

如果需要更多输入,请告诉我,感谢您的帮助。

【问题讨论】:

    标签: angular .htaccess angular-ui-router apache2 hash-location-strategy


    【解决方案1】:

    所描述的问题听起来像是您没有使用正确的重写规则并且 Apache 无法正确处理请求。这就是为什么如果您尝试直接访问漂亮的 URL 将不起作用的原因。 (当您通过主页导航子页面时,URL 正常工作,因为它很可能是一个 SPA)。请尝试在您的 .htaccess 文件中使用以下重写规则:

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

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      相关资源
      最近更新 更多