2014-04-29 78 views
0

我在Amazon S3上使用自定義域名託管Backbone應用程序。 Backbone應用程序路由器處理根目錄下的所有路由('/')。我想使用pushState,所以在我的應用程序路由上不需要#前綴。基本上,我希望所有的子路由被S3路由到域根,讓骨幹完成剩下的工作。S3 web hosting for backbone.js應用程序pushState

添加以下規則:

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
    <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals > 
    </Condition> 
    <Redirect> 
     <HostName>mydomain.com</HostName> 
     <ReplaceKeyPrefixWith>#</ReplaceKeyPrefixWith> 
    </Redirect> 
    </RoutingRule> 
</RoutingRules> 

但是,這只是增加了#號前綴我所有的子路徑。我想避免這種情況。

如何在我的S3存儲桶上設置重定向規則,以將所有內容路由到索引文檔而無需添加#?

回答

0

你說「只是增加了#號」,但實際上是加載了index.html頁面。這是因爲www.example.com/#my-folder/my-page/whatever實際上是加載/index.html並將瀏覽器#my-folder/my-page/whatever作爲片段。如果您在服務器上運行網站,但不在S3中,則可以這樣做。您可以在頁面加載後使用push-state來讀取片段#my-folder/my-page/whatever並將其重寫爲my-folder/my-page/whatever,我相信這會實現您要查找的內容。

+0

令人失望。我希望避免爲靜態內容運行我自己的Web服務器,並完全依賴S3 Web託管功能。 – elynch