相关疑难解决方法(0)

提供索引文件而不是下载提示

我的网站托管在 S3 上,CloudFront 作为 CDN,我需要这两个 URL 的行为相同并为目录中的 index.html 文件提供服务:

example.com/directory example.com/directory/

/末尾带有 的那个错误地提示浏览器下载一个零字节文件,该文件带有文件名的随机散列。如果没有斜线,它会返回我的 404 页面。

如何获得两个路径以在目录中传送 index.html 文件?

如果有一种方法我“应该”做到这一点,太好了!这就是我所希望的,但如果不是,我可能会尝试使用 Lambda@Edge 进行重定向。无论如何,我需要在其他一些情况下使用它,因此有关如何从 Lambda@Edge 进行 301 或 302 重定向的一些说明也会有所帮助:)

更新(根据约翰汉利的评论)

curl -i https://www.example.com/directory/

HTTP/2 200 
content-type: application/x-directory
content-length: 0
date: Sat, 12 Jan 2019 22:07:47 GMT
last-modified: Wed, 31 Jan 2018 00:44:16 GMT
etag: "[id]"
accept-ranges: bytes
server: AmazonS3
x-cache: Miss from cloudfront
via: 1.1 [id].cloudfront.net (CloudFront)
x-amz-cf-id: [id]
Run Code Online (Sandbox Code Playgroud)

更新

CloudFront 有一个行为集,将 http 转发到 https 并将请求发送到 S3。它在错误选项卡下还有一个 404 错误路由。

html amazon-s3 amazon-web-services amazon-cloudfront aws-lambda

4
推荐指数
2
解决办法
2320
查看次数

next.js - 导出站点的目录结构

希望 Next.js 魔术师可以帮助我解决这个问题,或者至少直接告诉我如果不可能的话。

我们有一个被编译成静态文件的网站。这些将从 S3 提供。

当我运行时next export,一切都正确构建,但我希望能够直接访问子页面而不添加 .html 扩展名。我(错误地)假设接下来将页面构建到目录中,并将 index.html 放入该目录中。

开发端的设置相当简单。每个组件都有一个目录,例如“some-component”,其中有一个index.js,它从相邻文件(如“some-component.js”)导出指定的组件。

如果我从站点根目录开始,这一切都有效 - 我可以导航到例如 /components/some-component ,而不必担心扩展名。

接下来创建了一个some-component目录,但里面的文件仍然只是名为 some-component.html。因此,如果我从浏览器中点击该 URL,显然会出现 404 错误。

有什么方法可以将index.html吐出到目录中,以便直接浏览到目录(尝试说喝完酒后)可以吗?还是我找错了树?

我知道还有其他解决方案,特别是对于 s3,但我认为值得一问。

干杯!

javascript amazon-s3 next.js

3
推荐指数
1
解决办法
1433
查看次数