使用IIS重写模块重定向到Amazon S3存储桶

时间:2011-06-11 15:53:35

标签: asp.net-mvc-3 iis-7

我的MVC项目使用默认位置(/ Content /...)

所以这段代码在哪里:

<div id="header"style="background-image: url('/Content/images/header_.jpg')">

解析为 www.myDomain.com/content/images/header_.jpg

我正在将我的图像文件移动到S3,所以现在他们从“http://images.myDomain.com”解析了。我是否必须将项目中的所有链接转换为该绝对路径?

可能有一个IIS7x属性可以帮助吗?

编辑:问题似乎归结为使用IIS的重写模块的具体细节。我到目前为止看到的示例显示了如何操作URI的下端和查询字符串。我需要重新映射URI的域名结尾:

http://www.myDomain.com/content/images/header_.jpg 需要成为:    http://images.myDomain.com/header_.jpg

THX

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确。你的意思是

  

如何在渲染时透明地将http://www.myDomain.com/Content/myImage.png等图片网址重写为http://images.myDomain.com/Content/myImage.png

或者

  

如何从S3透明地提供http://images.myDomain.com/Content/myImage.png等图像?

有一个DNS技巧可以回答第二个问题。

创建'images.myDomain.com'存储桶,并将您的内容放在'/ Content /'路径下。由于S3将桶作为域自身公开,您现在可以使用

获取内容

http://images.myDomain.com.s3.amazonaws.com/Content/myImage.png

然后,您可以在自己的DNS提供商中创建CNAME记录,将'images.myDomain.com'改为'images.myDomain.com.s3.amazonaws.com'

这使您可以链接到图像

http://images.myDomain.com/Content/myImage.png

..然后让他们从S3服务(您可能还会考虑完整的CDN,例如云前端。)

相关问题