骨干:没有哈希的直接页面访问

时间:2012-09-16 00:38:06

标签: backbone.js deep-linking backbone-routing

回答我自己的问题,我一直遇到Backbone.js的问题......

在我的Backbone应用程序中,我希望用户能够直接导航到内部“页面”,而无需在URL中键入哈希(#)。开箱即用,Backbone Boilerplate似乎不支持此功能,即使它支持pushState

显然,用户已经可以到达任何位置,只要他们从主页开始。或者他们可以直接跳到内部页面,但只有在域之后或紧接在初始斜杠之后有一个哈希(#)。

我找到了解决此问题的解决方案似乎正在起作用。我在这里发布它给其他有同样问题的人,看看是否有人知道更好的方法,因为我找不到其他地方的确切问题。

1 个答案:

答案 0 :(得分:1)

在尝试破解Backbone Boilerplate一段时间后,我发现BBB只需要哈希就可以存在(如果还没有)。

所以我的解决方案是在我的.htaccess文件中附加一条重写规则,说明如果找不到请求的页面,请在域后再次使用哈希值。

<IfModule mod_rewrite.c>
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ /#$1 [R,L,NE]
</IfModule>

到目前为止似乎工作正常。这已经困扰了我一段时间,我认为其他人可能在同一条船上。

如果有人知道更好的方法来解决这个问题,或者我的解决方案可能导致任何问题,请随时回复。