我正在使用 Backbone.js 和 PHP MVC 框架(Codeigniter、Laravel)。我对使用 Pushstates 时 PHP 路由器和 Backbone 路由器如何处理 URL 感到困惑。(我还没有开始使用 pushstates,还在使用 hashbangs #
)。我不是在处理单页应用程序,而是该站点由几个页面组成,这些页面本身就像单页应用程序一样。
问题:如果我有一个页面http://domain.com/user/user123
,并且单击一个链接http://domain.com/user/user123#photos
通过 AJAX 加载了一些照片并且我想摆脱,我预见到单击链接后#
转到的用户决定将 URL 复制并粘贴到另一个的问题http://domain.com/user/user123/photos
浏览器选项卡将看到一个错误 404 页面,因为 PHP 框架路由器(如果我正确假设 PHP 路由器在主干之前首先处理 URL 请求)无法识别此 URL 的存在。这个问题应该如何解决?
我认为会出现的另一个问题是,当用户直接进入时,视图应该如何呈现http://domain.com/user/user123/photos
?HTML 代码是否应该在 PHP 视图(对于用户直接输入 URL 的情况)和主干.js 视图(对于用户单击链接的情况)上重复http://domain.com/user/user123
?这对我来说似乎不是最佳解决方案。或者是否可以通过主干在两种情况下以某种方式呈现视图以避免重复代码?
请指教 :)