如何在chaplin.js中的url上使用hash(#),就像骨干用来做的那样?

时间:2013-07-10 17:02:18

标签: backbone.js chaplinjs

假设我在chaplin.js网站上有两个“页面”(端点)

路线:

match('', 'first_controller#show');
match('second_view', 'second_controller#show');

和两个链接:

<a href="{{#url "first_controller#show" }}{{/url}}">Go to home</a>
<a href="{{#url "second_controller#show" }}{{/url}}">Go to Second</a>

生成的网址是“正确的”:

mysite.com/something/     (home)
mysite.com/something/second_view  (second view)

(注意我不在网站的根目录上)。当我在“主页”启动应用程序然后单击“转到第二个”链接时,我被正确地重定向到第二个视图,所有内容都正确投标,浏览器上的网址更改为mysite.com/something/second_view

但是我无法刷新导航器,因为我的网络服务器会尝试访问second_view文件夹,而我会得到404.

我需要的是始终使用骨干中的#生成网址,例如mysite.com/something/#/second_view

BTW:最后一个链接有效,但是chaplin删除#(如重定向)

也许我需要配置一些东西?或者更改ùrl`helper上的内容,我在文档中找不到任何内容。任何想法??

Thxs

1 个答案:

答案 0 :(得分:3)

Backbone本身通过

开箱即可使用此功能
Backbone.history.start({pushState: false})

(默认)

您可以看到startHistory call here。 您只需将此选项对象作为第二个参数传递到initRouter中的Application

this.initRouter(routes, {pushState: false});