0

针对我在 Backbone.js 中不断遇到的问题回答我自己的问题...

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

显然,用户只要从主页开始就可以到达任何位置。或者他们可以直接跳到内部页面,但前提是域之后直接有一个井号 (#) 或紧跟在初始斜线之后。

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

4

1 回答 1

1

在尝试破解 Backbone Boilerplate 一段时间后,我突然想到 BBB 只需要哈希就可以了,如果它还没有的话。

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

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

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

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

于 2012-09-16T00:38:06.103 回答