我是部署静态站点的新手。搜索了大概一会,根据我遇到的问题,没有找到有用的信息。
目的:我想在 CloudFront 上运行我生成的 Nuxt.js 静态站点。
问题:
Ran 命令获取nuxt generate
站点的静态文件,例如:
-| dist/
----| about/
------| index.html
----| index.html
Run Code Online (Sandbox Code Playgroud)
我使用所有必要的选项正确配置了 CloudFront,将站点加载到 S3 并将其与 CloudFront 连接。如果我导航应用程序而无需重新加载页面并通过浏览器工具返回上一页,它就可以正常工作。当我尝试请求任何路径时出现问题(除了 root '/',因为 CloudFront 正确处理它 - image)。例如,每当我尝试请求路径时http://domainname.com/about/(末尾是否带有“/”),我都会收到 XML 错误代码,这意味着未找到该站点页面。
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>about</Key>
<RequestId>request-id-hash</RequestId>
<HostId>
host-id-hash
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
这是因为 CloudFront 等待客户端请求文件的完整路径。
例如:http://domainname.com/about/index.html将按预期返回页面。
另外,我尝试生成带有subFolders: false选项的文件以实现此目的:
-| dist/
----| about.html
----| index.html
Run Code Online (Sandbox Code Playgroud)
但还是遇到了同样的问题:CloudFront 想要请求文件的完整路径,所以http://domainname.com/about不会返回网页。它将像以前一样发送错误代码。
当我请求存储它的文件夹的路径时,如何让 CloudFront 理解我想要获取 index.html 文件?请不要建议使用 …