Backbone js路由页面加载/刷新没有哈希

时间:2015-05-24 18:24:28

标签: javascript backbone.js

我在路由器中有这个

# ROUTING
App.Router = Backbone.Router.extend(

  routes:
    '': 'homePage'
    'photography': 'photographyPage'
    'about': 'aboutPage'
    'contant': 'contantPage'

  initialize: ->
    that = this
    @route 'photography', 'photographyPage', ->
      that.photographyPage()

    pageWrapper = $('#pageWrapper')
    content = $('#content')

  homePage: ->
    console.log 'homepage'

  photographyPage: ->
    console.log 'photography'
)

启动路由器后

new (App.Router)
Backbone.history.start 
 pushState: true

在我的HTML中我有这个

<nav>
  <a href="/photography" class="inbound-link">Photography</a>
  <a href="/about" class="inbound-link">About</a>
  <a href="/contact" class="inbound-link">Contact</a>
</nav>

我能够很好地导航到上面的链接。但是我遇到了一个问题,如果我降落在http://website.com/photography并刷新页面,我会找不到404。或者,如果我直接去那个网址,我也会得到404。我尝试了这条路线http://website.com/#/photography,然而当它加载时,它会删除#并将其替换为http://website.com/photography

有人能帮我理解我做错了什么吗?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

问题是您从HTTP服务器请求路径/photography,而且找不到正确的文件。

您需要将服务器配置为为可能请求的任何(或某些)路径提供html文件。

正确的方法取决于您的服务器(apache,nginx等)