使用CloudFront和AmazonS3,或者其他CDN,我可以将所有类似的请求发送到一个静态文件中

Using CloudFront and Amazon S3, or another CDN, can I send all similar requests to one static file?

本文关键字:请求 文件 静态 一个 或者 其他 AmazonS3 CloudFront CDN 我可以 使用      更新时间:2023-09-26

我希望以下所有请求都能访问AmazonS3上托管的同一静态文件,例如:

http://cloudfront.net/js/12345.js
http://cloudfront.net/js/54232.js
http://cloudfront.net/js/76543.js

会全部指向AmazonS3上的单个静态文件,例如:

/js/real-file.js

那么这个真实文件中的javascript代码将能够使用下面的东西从请求中获得数字:

var scripts = document.getElementsByTagName('script');
var scriptName = scripts[scripts.length-1].src;

我知道使用诸如之类的查询参数是可能的

/js/real-file.js?a=12345

但我想知道如果没有它,是否有可能实现。

如果不是在亚马逊上,那么也许可以使用不同的CDN服务?

下面的答案为我解决了这个问题:answer-35354677

解决方案是:

  1. 请确保为您的网站配置了索引路由。大部分是index.html
  2. 从S3配置中删除路由规则
  3. 在S3存储桶前面放一个Cloudfront
  4. 为您的Cloudfront实例配置错误页面规则。在错误规则中指定:
    • Http错误代码:404(和403或根据需要的其他错误)
    • 缓存最小TTL(秒)时出错:0
    • 自定义响应:是
    • 响应页面路径:/index.html
    • HTTP响应代码:200