我知道堆栈溢出还有其他与此类似的问题,但是我还无法解决问题。我有一个使用静态网站托管在S3中托管的Angular 7应用。我尚未购买域或设置CloudFront,因为我仍在开发该站点。
我的问题是,当导航栏由导航栏中的click事件触发时,路由工作正常(代码使用router-link),但是如果我在除根目录(“ /”)之外的任何页面上都单击了刷新,从S3收到403禁止错误:
正如我所说,角度路由似乎工作正常,因为我在代码中使用router-link来处理导航,这是一个示例:
<a routerLink="/services">Click here</a>
这是我的app-routing.module.ts代码:
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about-us', component: AboutUsComponent },
{ path: 'new-patients', component: NewPatientsComponent },
{ path: 'services', component: ServicesProvidedComponent },
{ path: 'contact', component: ContactComponent },
{ path: '**', component: HomeComponent }];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
根据我已阅读的其他解决方案,我在想,我需要以某种方式重定向到索引页面,以便Angular路由器能够启动,但我不确定我需要添加什么配置。我以为添加默认路由('**')可以解决此问题,但显然我错了。
当我向S3进行部署时,我总是选择使所有文件可公开访问的选项,所以我认为这不是问题所在。