Как я могу сделать шаблоны Meteor доступными для целевой аудитории через URL-адрес?

Я хочу создать своего рода блог с помощью Meteor, но вместо того, чтобы просто иметь блог, такой как platypus.meteor.com, я хочу создать отдельный шаблон Meteor для каждого «сообщения» в блоге, а затем отправить ссылку, чтобы выбрать людей например, "platypus.meteor.com/thispost"

Таким образом, человек увидит только тот пост, который я хочу, чтобы он увидел; чтобы увидеть других, им придется угадывать другие значения, такие как «/thatpost», «/theotherpost» и т. д.

И в моем случае, если они наткнулись на них, ничего страшного.

Это мой план:

Создавайте по одному шаблону за раз:

<template name="thispost">
    . . .
</template>

... а затем разрешить доступ к этому тому, кому я сообщаю о его доступности (то есть они просто вводят ссылку, которую я им отправляю, в свой браузер).

Я не знаю, какую маршрутизацию мне нужно настроить; Я открыт либо к IronRouter, либо к FlowRouter. Во всяком случае, я хочу, чтобы URL-адрес типа «platypus.meteor.com/thispost» (после «meteor deploy platypus» этого проекта) показывал пользователю содержимое этого шаблона и ничего больше.

Итак, мой вопрос: что мне нужно сделать с точки зрения маршрутизации, чтобы выполнить это?


person B. Clay Shannon    schedule 06.10.2015    source источник
comment
Зачем вообще возиться с разными шаблонами, когда можно просто получить данные с помощью маршрутизации и передать их шаблону showPost?   -  person Kyll    schedule 06.10.2015
comment
@Килл: точно. С IronRouter вы просто настроили Router.route("/:blog_post_title", {template: "blog_post", name: "blog_post"})   -  person Autumn Leonard    schedule 06.10.2015
comment
@AutumnLeonard: В этом случае мне нужен шаблон с именем blog_post, верно?   -  person B. Clay Shannon    schedule 06.10.2015
comment
@B.ClayShannon Да; для меня было бы целесообразно, чтобы сообщения имели общий шаблон, но если это невозможно, возможно, ответ Мишеля Флойда ниже подходит больше.   -  person Autumn Leonard    schedule 07.10.2015
comment
@AutumnLeonard: Это (Router.route() IronRouter? Я склоняюсь к FlowRouter...   -  person B. Clay Shannon    schedule 07.10.2015
comment
@AutumnLeonard: Неважно, я вижу, вы упомянули IronRouter.   -  person B. Clay Shannon    schedule 07.10.2015


Ответы (1)


Как насчет просто:

Router.route("/:templateName/:postId",{
  template: this.params.templateName,
  data: function(){ return Posts.findOne({ _id: this.params.postId })
});

Затем вы можете поделиться любым сообщением с любым шаблоном, и имя шаблона будет отображаться прямо в маршруте.

person Michel Floyd    schedule 06.10.2015
comment
Все вниз, кроме девяти; Поставь их на другом переулке, пард. - person B. Clay Shannon; 07.10.2015