Fil*_*lip 8 javascript internationalization next.js
我正在使用 deufakt i18n 本地化插件来翻译网页,但我想关闭我的/blog
路线的本地化。
基本上我想要的是这样的:
\nmypage.com/es/anotherRoute
-> mypage.com/blog
(该es
或任何其他语言代码消失)
但这不是我想要实现的主要目标。最大的问题是我无法构建下一个应用程序。
\n该错误基本上是在预渲染时未定义post
in 。[slug]
尽管它不应该是这样,因为如果我console.log它,它就在那里。
[子弹]
\nimport ErrorPage from "next/error";\nimport { getStrapiURL, getPageData, getBlogPost } from "utils/api";\nimport Sections from "@/components/sections";\nimport Seo from "@/components/elements/seo";\nimport { useRouter } from "next/dist/client/router";\nimport BlogPost from "@/components/blog/blogPost";\n\nconst BlogPage = ({ post, allPosts }) => {\n const router = useRouter();\n if (router.isFallback) {\n return <div className="container">Loading...</div>;\n }\n return (\n <>\n {/* Add meta tags for SEO*/}\n <Seo metadata={post.metadata} />\n {/* Display content sections */}\n <BlogPost {...{ post, allPosts }} />\n </>\n );\n};\n\nexport async function getStaticPaths() {\n const blogPosts = await (await fetch(getStrapiURL("/blog-posts"))).json();\n const paths = blogPosts.map((page) => {\n return {\n params: { slug: page.slug },\n };\n });\n\n return { paths, fallback: true };\n}\n\nexport async function getStaticProps({ params, preview = null }) {\n\n const pageData = await getBlogPost(params.slug);\n const allPosts = await (await fetch(getStrapiURL("/blog-posts"))).json();\n\n if (pageData == null) {\n // Giving the page no props will trigger a 404 page\n return { props: {} };\n }\n\n return {\n props: {\n post: pageData,\n allPosts,\n },\n revalidate: 1,\n };\n}\n\nexport default BlogPage;\n
Run Code Online (Sandbox Code Playgroud)\n我的pages
文件夹:
pages\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 [[...slug]].js\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _app.js\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _document.js\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 blog\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 [slug].js\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n
Run Code Online (Sandbox Code Playgroud)\n
插件配置ignoreRoutes
中有属性i18n
i18n: {
defaultLocale: 'en',
locales: availableLocalesMap,
ignoreRoutes: [
'/blog/',
'/public/'
],
},
Run Code Online (Sandbox Code Playgroud)
UPD:它不再有效,所以现在我们可以随意解决这个问题
@neuroine 在评论中提供的 github 讨论链接可能有用:
https://github.com/vercel/next.js/discussions/28554
归档时间: |
|
查看次数: |
9762 次 |
最近记录: |