我创建了一个便于内容共享的项目。你可以在这里查看我的项目: SharingProject
您可以将user@example.com与123456用作密码,以将该网站作为已验证用户进行测试。当然该网站还有一些漏洞......
我使用meteor用户包和骨干包来浏览页面。 在localhost上,没有问题。为了测试,我将项目上传到流星服务器。现在,当我登录并浏览页面时,每次我导航到新页面时,由于URL更改,应用程序“检查”客户端的用户。这很烦人......
当然,我可以浏览只调用Session.set('page_id',..)的页面,但我的目标是能够将人们的网址发送到服务器上的特定页面。
代码类似于流星页面中todos示例中的代码:
Meteor.subscribe('pages', function () {
if (!Session.get('page_id')) {
var page = Pages.findOne({}, {sort: {owner: -1}});
if (page)
Router.setPage(page._id);
}
});
...
var PagesRouter = Backbone.Router.extend({
routes: {
":page_id": "main"
},
main: function (page_id) {
Session.set("page_id", page_id);
},
setPage: function (page_id) {
this.navigate(page_id, true);
}
});
Router = new PagesRouter;
Meteor.startup(function () {
Backbone.history.start({pushState: true});
});
为什么我在这里问:我搜索了网络,找不到有同样问题的人。所以要么之前没有人尝试过,或者有一个简单的解决方案呢?
编辑:我如何调用页面
<template name="pages">
{{#each pages}}
<p><a href="/{{_id}}">{{title}}</a>
{{#if isauthor}}
<a class="delPage" href="javascript:delPage('{{_id}}')">delete</a>
{{/if}}
</p>
{{/each}}
</template>
答案 0 :(得分:1)
我不知道你是如何渲染页面链接的,但是像这样的链接:
http://pagesharingproject.meteor.com/a1fbacba-0ddf-4077-a653-294b428bbfb8
应如下所示:
http://pagesharingproject.meteor.com/#a1fbacba-0ddf-4077-a653-294b428bbfb8
答案 1 :(得分:1)
好的我解决了这个问题,改变了(真实)
Meteor.startup(function () {
Backbone.history.start({pushState: true});
});
到(假)
Meteor.startup(function () {
Backbone.history.start({pushState: false});
});
当然还有像Mubix建议的那样添加锚。谢谢你的暗示! 它是上述网站的最新版本。
我今天花了一些时间在骨干文档上,但我无法想象为什么这有效?特别是我想知道为什么
{hashChange: false}
在这里不起作用?