当页面刷新时,我的ngnix服务器给出404 not found错误

时间:2020-05-31 06:04:51

标签: angular nginx

问题:

我已经构建了angular应用程序,然后使用Nginx docker容器将其托管在虚拟机上,因为我已经创建了一个./Dockerfile。

FROM nginx:1.17.1-alpine
COPY ./dist/HRM-Front-end /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/
EXPOSE 3003
CMD ["nginx", "-g", "daemon off;"]

这是我的app-routing.module.ts文件。

import {NgModule} from '@angular/core';
import {PreloadAllModules, RouterModule, Routes} from '@angular/router';
import {HomeMainComponent} from '../module/home/feature/home-main/home-main.component';


const routes: Routes = [
  {path: '', component: HomeMainComponent}
];

@NgModule({
  imports: [RouterModule.forRoot(routes, {
      scrollPositionRestoration: 'enabled',
      preloadingStrategy: PreloadAllModules
    })],
  exports: [RouterModule]
})
export class AppRoutingModule {
}

然后是这样的nginx.conf文件。

在高山上,复制到/etc/nginx/nginx.conf

user                            root;
worker_processes                auto;

error_log                       /var/log/nginx/error.log warn;

events {
    worker_connections          1024;
}

http {
    include                     /etc/nginx/mime.types;
    default_type                application/octet-stream;
    sendfile                    off;
    access_log                  off;
    keepalive_timeout           3000;
    server {
        listen                  3003;
        root                    /usr/share/nginx/html;
        index                   index.html;
        server_name             localhost;
        client_max_body_size    16m;
    }
}

运行服务器后,我可以在浏览器中成功访问它,但是当我尝试刷新页面时,它提示我404 Not found问题。我试图找出问题所在。但是我无法做到,有人可以帮助我解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以看到您将必须为每条路线添加后备广告*在htaccess中提供index.html 寻找nginx配置https://angular.io/guide/deployment