如何隐藏 S3 上托管的 Angular 4 网站中的基本 href

Dan*_*ead 2 amazon-s3 amazon-cloudfront amazon-route53 angular

我有一个网站托管在用 Angular 4 编写的 S3 存储桶上。

我在 Route 53 上有一个指向 CloudFront 分配的 URL,该分配指向 S3 存储桶的 index.html(设置为无缓存)。

在 S3 存储桶中,我有每个版本示例的文件夹:

mywebsite.com
-> v1.0.0
   -> pricing.html
-> index.html
Run Code Online (Sandbox Code Playgroud)

在我的index.html 中我有 <base href="/v1.0.0/">

这非常完美,可以转到正确的页面,并且始终获得网站的最新版本,因为 index.html 没有被缓存。

然而,这使我的网址看起来像:
https://www.mywebsite.com/v1.0.0/pricing

如何隐藏 URL 中的“/v1.0.0/”?

Dan*_*ead 6

好吧,经过几个小时的尝试,我终于明白了。以下是我为其他尝试这样做的人所做的事情:

进入你的app.module.ts文件并添加

import { APP_BASE_HREF } from '@angular/common';
Run Code Online (Sandbox Code Playgroud)

接下来,在“提供者”部分添加

  providers: [
[{provide: APP_BASE_HREF, useValue: '/'}]
],
Run Code Online (Sandbox Code Playgroud)

然后,当您上传网站时,编辑index.html以获取版本文件夹的base_href:

<base href="/v1.0.9/">
Run Code Online (Sandbox Code Playgroud)

现在它将从 /v1.0.9/ 文件夹中提取所有文件,但不会在 URL 中显示该文件!