2015-09-29 140 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