swa*_*ler 14 javascript node.js express backbone.js pushstate
pushState Backbone.js版本0.5更新引入了支持.
从骨干文档:
请注意,使用真实URL要求您的Web服务器能够正确呈现这些页面,因此也需要进行后端更改.例如,如果您的路径为/ documents/100,则如果浏览器直接访问该网址,则您的网络服务器必须能够提供该网页.对于完整的搜索引擎可抓取性,最好让服务器为页面生成完整的HTML ...但如果它是一个Web应用程序,只需呈现与根URL相同的内容,并使用Backbone填充其余内容视图和JavaScript工作正常.
这可能看起来像一个微不足道的问题,但我想知道是否有人可以帮助我使用一些特定的(最好是快速的)node.js服务器代码.我该如何处理这些路线?我有点困惑.
以下是我的应用程序路由器模块的相关摘录:
var Router = Backbone.Router.extend({
routes: {
'': 'index',
'about': 'about'
},
index: function() {
indexView.render();
},
about: function() {
aboutView.render();
}
});
var initialize = function() {
var router = new Router;
Backbone.history.start({ pushState: true });
}
return {
initialize: initialize
};
Run Code Online (Sandbox Code Playgroud)
我这里只有一个顶级路线和一个关于页面的路线.那么我应该如何设置一个允许我导航到的节点服务器:
domain.com
domain.com/about
domain.com/#/about // <- for browsers that don't support pushState
Run Code Online (Sandbox Code Playgroud)
Ati*_*nux 18
首先,您需要知道domain.com/#/about将调用服务器的"/"路由,因为它不会读取#片段.您的服务器将呈现Backbone.js应用程序的基础,Backbone将触发"关于"路由.
所以,你需要在Express JS中声明两个路由:
app.get('/', function(req, res) {
// Trigger the routes 'domain.com' and 'domain.com/#/about'
// Here render the base of your application
});
app.get('/about', function (req, res) {
// Trigger the route 'domain.com/about'
// Here use templates to generate the right view and render
});
Run Code Online (Sandbox Code Playgroud)
我建议你使用Derick Bailey的3个与Backbone.js兼容的链接:
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |