【问题标题】:Angular 6 - To deploy App in productionAngular 6 - 在生产中部署应用程序
【发布时间】:2018-12-15 12:21:08
【问题描述】:

我正在尝试将我的第一个 Angular 应用程序上传到生产环境,我已经执行了命令:

ng build --prod --build-optimizer

接下来我复制了server文件夹根目录下dist文件夹的内容。

我正确地看到了应用程序,唯一的问题是当我在浏览器中重新加载页面时,它给了我以下错误:

Not Found
The requested document was not found on this server.

在 index.html 文件中,我以这种方式拥有基本标记:

<base href = "/">

这是我的路线文件:

const routes: Routes = [
  { path: '', redirectTo: '/home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent },
  { path: 'writer', component: WriterComponent },
  { path: 'music', component: MusicComponent },
  { path: '404', component: NotFoundComponent},
  { path: '**', redirectTo: '/404'}
];

可能是什么问题?

【问题讨论】:

  • 您还需要稍微配置一下服务器angular.io/guide/deployment#server-configuration
  • 首先,您不需要--build-optimizer 参数,它现在默认为true。其次,您的应用程序是一个 SPA(单页应用程序),它负责路由,而不是常规网站中的服务器。所以你需要将每个 url 重定向到 index.html 以便 Angular 可以处理它。

标签: angular deployment


【解决方案1】:

我相信这必须在服务器上进行配置。请参考这里:https://angular.io/guide/deployment#routed-apps-must-fallback-to-indexhtml

在不知道您要部署的服务器类型的情况下,我无法具体说明。

【讨论】:

  • 我认为是 Apache,我将审查服务器和您发布的链接,谢谢
【解决方案2】:

使用以下命令获取项目的 Exactly 文件夹。

ng build --prod --base-href /FOLDER_NAME/

【讨论】:

    【解决方案3】:

    复制 index.html 文件并将其粘贴到同一目录并命名为 404.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-21
      • 2017-11-16
      • 1970-01-01
      • 2018-02-26
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      相关资源
      最近更新 更多