Asp.net mvc 3 使用IIS重写模块重定向到Amazon S3存储桶

Asp.net mvc 3 使用IIS重写模块重定向到Amazon S3存储桶,asp.net-mvc-3,iis-7,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\uuz.jpg 我正在将图像文件移动到S3,因此现在它们从http://images.myDomain.com'是否必须将项目中的所有链接转换为该绝对路径 这里是否有II

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

因此,如果该代码:

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

解析为www.myDomain.com/content/images/header\uuz.jpg

我正在将图像文件移动到S3,因此现在它们从http://images.myDomain.com'是否必须将项目中的所有链接转换为该绝对路径

这里是否有IIS7x属性可以提供帮助

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

需要成为:


thx

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

如何像在渲染时那样透明地重写图像URL

如何透明地提供S3中的图像

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

创建“images.myDomain.com”bucket,并将内容放在“/content/”路径下。由于S3本身将存储桶公开为域,因此您现在可以使用

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

这使您可以将图像链接为


……但让他们从S3提供服务(你也可以考虑一个完整的CDN,比如云锋)。我已经设置了CNAME记录,以便根据您的DNS技巧为我的图像提供服务。我的MVC的图像链接都是相对的。我不清楚的是,我在谁/哪里将我的映射到MVC的/Content/Images路径,以便它解析到我的CNAME路径。我是否有其他方法来触摸我的每个现有链接,使它们指向子域“图像”,而不是相对于应用程序的根?似乎IIS应该更优雅地处理这个问题。您可以尝试IIS重写规则,将

www.myDomain.com/Content/Images/*
发送到
Images.myDomain.com/Content/Images/*
。是的……这就是我想要做的。我已经查看了URL重写模块IIS的文档,但还不太了解语法。