2015-09-29 139 views
2

在制作时,我的应用程序会打开一个托管在我S3上的内容的iFrame。由于出现了CORS问题,我选择将我的S3主机屏蔽为具有CNAME的应用程序的子域。因此,通过将:我可以将本地主机子域别名到远程S3主机吗?

host.mywebsite.com 

它实际上是要我的S3桶也被称为host.mywebsite.com但它绕过我的所有CORS的问题,因为我的网站现在认为它是本地的。

为了测试它的工作原理,我也想在我的本地设置它。在我的本地,我使用Rail的POW,它允许我使用子域并托管我的本地服务器。是否有可能以某种方式将特定的子域别名作为我的远程S3地址?

这样去:

https://host.mylocalVersionOfMyWebsite.dev/ 

..would实际访问远程主机S3但我的本地站点。这样,我的本地网站mylocalApp.dev会认为它来自同一个域,因此没有任何CORS问题。

仅使用Rails,我仅限于重定向。一些Rack Middleware提供了写301的能力,但没有别名。我也考虑过使用/ etc/hosts,但是没有这样的运气。

回答

1

我想你也许可以通过添加一行到您/etc/hosts这样做:

128.30.52.122 mylocalApp.dev 

...其中128.30.52.122是远程S3地址。

但是我认为,当客户到达该地址时,亚马逊会执行重定向(如果有的话),但这种方式并不存在。

另外我可以想象我可能会误解你想做什么;在这种情况下,这个答案可能只是噪音,所以添加一个评论说它不相关,我会删除它。

+0

非常感谢回复。我修改了我的/ etc/hosts,但是当我导航到地址时,它似乎没有被捕获。它假设它在我的本地应用程序中的路线不正确。可能是因为应用程序在主机文件重定向之前冒泡。 – Trip

+0

好的,是的,我想这可能发生在这个特定的情况。对于一般情况(或者对于一些情况最少),我认为这个答案仍然有效,所以我想我会保留它(除非结果是不相关)。希望我有另一个/更好的建议比这... – sideshowbarker

+0

其实只是使用Rails的路线,我似乎可以用'constraints'来掩盖它 – Trip