我正在尝试为我的Backbone/NodeJS应用程序实现pushstate。如果我在浏览器本身内部转到以下路线/testRoute/123
,则从另一个视图中,将相关视图加载到/testRoute/123
。Backbone PushState正在返回原始JSON数据
但是,如果我在地址栏中手动输入/testRoute/123
,浏览器将为ID为123的对象返回原始JSON供稿。
如何在手动输入URL时强制Backbone加载视图?
我正在尝试为我的Backbone/NodeJS应用程序实现pushstate。如果我在浏览器本身内部转到以下路线/testRoute/123
,则从另一个视图中,将相关视图加载到/testRoute/123
。Backbone PushState正在返回原始JSON数据
但是,如果我在地址栏中手动输入/testRoute/123
,浏览器将为ID为123的对象返回原始JSON供稿。
如何在手动输入URL时强制Backbone加载视图?
这不是Backbone可以做的(hense为什么pushState默认是禁用的)。您必须设置您的服务器以将这些请求重定向到根,以便您的HTML加载和Backbone可以处理该路由。
注意,使用真实的URL需要你的Web服务器能够正确显示这些页面,因此后端改变是必需的也是如此。例如,如果您的路由为/ documents/100,则如果浏览器直接访问该URL,则您的Web服务器必须能够提供该页面。对于完整的搜索引擎可爬行性,最好让服务器为页面生成完整的HTML ...但如果它是一个Web应用程序,只需渲染与根URL相同的内容,然后用Backbone填充其余内容视图和JavaScript工作正常。
如果@ idbehold的答案不够具体,here's a more detailed response to the same question。
我强烈建议您在响应底部查看这些链接,因为它们正是我面临同样麻烦时所寻找的内容...