#vue.js #vue-router #prismic.io
Вопрос:
Я вместе с Люси Хабере создаю сайт рецептов с маршрутизатором Vue и Prismic. Проблема, с которой я сталкиваюсь, заключается в том, что компонент prismic-link на моей странице index.vue не генерирует поле привязки тегов href для маршрутизатора vue.
Просматривая инструменты разработки, я вижу, что в моем ответе поле url объектов результатов пустое, где, как и на странице примера сайта, он возвращает относительный путь к странице:
(i.e. url "/recipes/gluten-free-oat-dumplings").
Итак, очевидно, что теги привязки, которые генерирует prismic-link, имеют значения атрибутов href=»». И в этом, я полагаю, заключается проблема.
Также я заметил, что мой первоначальный запрос к Prismic не включает параметры запроса:
(https://mybestrecipes.cdn.prismic.io/api/v2/documents/search?ref=YWhMghIAAElp5kmPamp;q=[[at(document.type, "recipe")]]amp;pageSize=100)
в то время как пример Люси делает
(https://the-last-straw.cdn.prismic.io/api/v2/documents/search?ref=YRv4vBIAAB8AWKJmamp;q=[[at(document.type, "recipes")]]amp;routes=[{"type":"home","path":"/"},{"type":"recipes","path":"/recipes/:uid"}]amp;pageSize=100).
Я также добавил добавленный «runtimeCompiler:true в vue.config.js досье. Все безрезультатно. Я не знаю, связана ли проблема с моим моделированием контента, потому что вы не видите схему Prismic из видео. Вот мой prismic.js:
import { createPrismic } from "@prismicio/vue";
const prismic = createPrismic({
endpoint: "mybestrecipes",
clientConfig: {
defaultParams: {
routes: [
{ type: "home", path: "/" },
{ type: "recipe", path: "/recipe/:uid" },
],
},
},
});
export default prismic;
Вот несколько снимков из devtools:
По совпадению, я клонировал ее репозиторий, и возникла та же проблема. И все же демонстрационный сайт работает нормально.
Приветствуется любая помощь в исправлении этого.
Комментарии:
1. На самом деле демонстрация из примера демонстрирует ту же проблему. Если вы перейдете github.com/lihbr/prismic-demo-the-last-straw и клонируя его и запуская, вы получаете ту же проблему
Ответ №1:
Люси здесь~
Действительно, на стриме с Алексом мы использовали альфа-версию комплекта. С тех пор мы выпустили некоторые важные изменения в базовом клиентском наборе (потому что мы находимся в альфа-версии): routes
параметр больше не вложен defaultParams
, теперь вы должны быть в порядке с чем-то вроде этого:
import { createPrismic } from "@prismicio/vue";
const prismic = createPrismic({
endpoint: "mybestrecipes",
clientConfig: {
routes: [
{ type: "home", path: "/" },
{ type: "recipe", path: "/recipe/:uid" },
],
},
});
export default prismic;
Живая демонстрация все еще работает, потому что все еще используется старая версия комплекта:relaxed: я обновлю ее позже на этой неделе!
Дайте нам знать, если что-нибудь случится!