我正在使用自定义域名在Amazon S3上托管Backbone应用程序。 骨干应用路由器处理根('/')下的所有路由。 我想使用pushState,因此在我的应用程序路由上不需要#前缀。 基本上,我希望所有子路由都由S3路由到域根,然后让Backbone完成其余的工作。

我添加了以下规则:

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

但这只会在所有子路由中添加#号前缀。 我想避免这种情况。

如何在S3存储桶上设置重定向规则,以将所有内容路由到索引文档而无需添加#?

===============>>#1 票数:0

使用存储桶URL代替您的域URL:

<HostName>BUCKET_NAME.s3-website-ap-northeast-1.amazonaws.com</HostName>

还请检查您的锚链接在URL <a href="#home">Home</a>没有#,而是具有如下链接:

<a href="/home">Home</a>
<a href="/about">About</a>

然后使用jQuery,您可以导航到路由器的链接

$(document).on('click', 'a[href^="/"]', function (e) {
    e.preventDefault();
    var href = $(e.currentTarget).attr('href');
    Backbone.history.navigate(href, { trigger: true });
});

  ask by elynch translate from so

未解决问题?本站智能推荐:

1回复

S3虚拟主机,用于带pushState的骨干.js应用程序

我正在使用自定义域名在Amazon S3上托管Backbone应用程序。 骨干应用路由器处理根('/')下的所有路由。 我想使用pushState,因此在我的应用程序路由上不需要#前缀。 基本上,我希望所有子路由都由S3路由到域根,然后让Backbone完成其余的工作。 我添加了以下
1回复

在PushState单页应用程序中将URL片段(#)用于模式视图

我们在仅推送状态模式下使用Backbone.Router ,因此我们所有的客户端路由都是无哈希的 。 但是,我们在应用程序中实现模态视图时遇到了困难。 挑战如下: 我们希望“后退”按钮隐藏当前的模式视图(因此我们需要它具有一个URL); 我们希望Forward再次显示
2回复

骨干js pushState给出无法获取错误

意识到在同一问题上有很多问题,但是没有一个起作用。 已经尝试将pushState设置为true并将hashChage设置为false,但是每次路由给我时都无法获取错误。 这是我的路线文件
13回复

S3 Static Website Hosting路由指向Index.html的所有路径

我使用S3来托管一个将使用HTML5 pushStates的javascript应用程序。 问题是如果用户为任何URL添加书签,它将无法解析为任何内容。 我需要的是能够获取所有URL请求并在我的S3存储桶中提供root index.html,而不仅仅是执行完全重定向。 然后我的javasc
1回复

骨干路由和推送状态

在我的主干应用程序中,我尝试整理一下URL,我想要看起来像这样的东西, 目前正在发生的事情是,如果我也浏览了http://develpoment.dev/#dashboard则哈希值被剥离,页面加载也与我期望的一样。 但是,如果我直接访问http://develpoment.dev
2回复

Backbone.js PushState True

我已经在骨干网中创建了一个网站,由于各种原因,我决定要删除网址中的哈希值。 我改变了历史。开始了 Backbone.history.start(); 至 Backbone.history.start({pushState: true, root: '/'}); 但是一旦我这样
2回复

pushstate在ribs.js中无法正常工作

如果我将Backbone与pushstate一起使用,应该如何格式化链接? 目前,我正在这样做: 如果我使用上述格式,它实际上会向服务器发送一个GET请求,该服务器提供一个标准页面,并且主干正确地标识它应该转到task/create并执行该task/create并显示视图。
1回复

pushState阻止Backbone.js路由工作

我在RequireJS / Backbone.js应用程序中遇到HTML5 pushState的问题,我很确定我做错了但我无法确定问题,我已经尝试了几个小时。 前言:所有RequireJS依赖项都在正确的文件夹中。 这是我的问题:我有一个基本的小设置 - 我使用的唯一Backbone
1回复

关于服务器配置的骨干网和推送状态

我想就这个问题扩大我的问题 。 我能够使pushstate在Backbone应用程序中正常工作。 因此,当访问我的应用程序并导航链接时,我被重定向到localhost:8000 / page而不是localhost:8000 /#page。 现在我的问题在重新加载localhost:800
1回复

使用node.js表示服务器的Backbone.js pushState路由的帐户?

在Backbone.js的0.5版更新中引入了pushState支持。 从骨干文档 : 请注意,使用真实URL要求您的Web服务器能够正确呈现这些页面,因此也需要进行后端更改。 例如,如果您的路径为/ documents / 100,则如果浏览器直接访问该网址,则您的网络服务器