Пользовательский макет Nuxt 3 показывает, что выбран недопустимый макет
Я пытаюсь добавить собственный макет в проект Nuxt 3. но этот макет не работает, и на консоли отображается сообщение вроде
Выбран недопустимый макет test_layout
Другой ошибки нет.
Это код, который я пробовал.
- | макеты /
--- | test_layout.vue
<template>
<div>
My Test Layout Header
<slot />
</div>
</template>
<script>
export default {
name: "test_layout"
}
</script>
- | страницы /
--- | блог / index.vue
<template>
<div>
<p>My Blog Title</p>
</div>
</template>
<script>
export default {
layout:"test_layout",
name: "blog",
}
</script>
я пытался
<Nuxt/>
вместо
<slot />
, но не работает.
2 ответа
Nuxt 3, кажется, заменяет подчеркивание имени файла дефисами, поэтому макет должен быть указан как
test-layout
:
// blog/index.vue
export default {
// layout: 'test_layout', // ❌ replace underscore with hyphen
layout: 'test-layout', // ✅
}
Это не было проблемой в Nuxt 2 , который использует точное имя файла в качестве имени макета (включая символы подчеркивания). Я также не вижу никакой документации по этому поводу. Я сообщил о проблеме , чтобы получить некоторые разъяснения.
Удалите приведенный ниже код из файла макета. Это может сработать.
<script>
export default {
name: "test_layout"
}
</script>