英文:
Issue with LinkedInBot accessing dynamic URLs incorrectly
问题
我目前面临的问题是LinkedInBot(在LinkedIn上共享页面时使用的工具)在我的Vercel托管的Next.js应用程序中不正确地访问动态URL。与访问预期的URL格式不同,LinkedInBot尝试访问带有方括号的路由参数的编码版本。
通常情况下,我能够访问页面[GET] /2023/07/como-implementar-diversidade-na-documentacao
,它对应于[year]/[month]/[slug].tsx
文件。它正常工作,但当我尝试在LinkedIn上分享链接时,会得到404错误,而在Vercel日志中,我发现LinkedInBot试图访问[GET] /%5Byear%5D/%5Bmonth%5D/%5Bslug%5D
。
页面的源代码:https://github.com/vtnorton/vtnorton.com/blob/main/src/pages/%5Byear%5D/%5Bmonth%5D/%5Bslug%5D.tsx
解决问题的尝试:
- 我已验证在LinkedIn上分享的URL包含了带有正确动态值的URL。
- 我已确保加载动态页面数据的逻辑正常工作。
NextJS版本:13.4.6
英文:
I'm currently facing an issue with the LinkedInBot (tool used for linkedin when you try to share one page on their platform) not accessing the dynamic URLs correctly in my Next.js application hosted on Vercel. Instead of accessing the expected URL format, the LinkedInBot is attempting to access an encoded version of the URL with route parameters enclosed in square brackets.
Normally I'm able to access the page [GET] /2023/07/como-implementar-diversidade-na-documentacao
and it goes under the [year]/[month]/[slug].tsx
file. It works fine, but when I try to share a link on LinkedIn it gets 404, ans in the Vercel Logs I found out that LinkedInBot tried to access [GET] /%5Byear%5D/%5Bmonth%5D/%5Bslug%5D
instead.
Source code of the page: https://github.com/vtnorton/vtnorton.com/blob/main/src/pages/%5Byear%5D/%5Bmonth%5D/%5Bslug%5D.tsx
Attempts to solve the issue:
- I have verified that the shared URL on LinkedIn contains the correct URL with dynamic values.
- I have ensured that the logic for loading data for the dynamic pages is functioning correctly.
NextJS: 13.4.6
答案1
得分: 1
以下是责任所在的代码行。使用pageUrl
时,所有参数都会出现相同的问题。根据Next.js官方文档:
> pathname
:字符串 - 当前路由文件的路径,位于/pages
之后。因此,不包括basePath
,locale
和尾随斜杠(trailingSlash: true
)。
因此,当我们在 https://vtnorton.com/2023/07/como-implementar-diversidade-na-documentacao 中检查您的页面时,它将会是精确的/[year]/[month]/[slug]
:
<meta property="og:url" content="https:`//vtnorton.com/[year]/[month]/[slug]">
相反,您可以使用asPath
:
> asPath
:字符串 - 在浏览器中显示的路径,包括搜索参数,并遵循trailingSlash
配置。不包括basePath
和locale
。
我提了一个包含这些更改的PR:https://github.com/vtnorton/vtnorton.com/pull/38
英文:
These are the lines responsible for the issue. You have the same problem with all parameters using pageUrl
. From the Next.js official documentation:
> pathname
: String - The path for current route file that comes after /pages
. Therefore, basePath
, locale
and trailing slash (trailingSlash: true
) are not included.
So it will be exactly /[year]/[month]/[slug]
as we can see when inspecting your page in https://vtnorton.com/2023/07/como-implementar-diversidade-na-documentacao :
<meta property="og:url" content="https:`//vtnorton.com/[year]/[month]/[slug]">
Instead, you could use asPath
:
> asPath
: String - The path as shown in the browser including the search params and respecting the trailingSlash
configuration.
basePath
and locale
are not included.
I made a PR with the changes: https://github.com/vtnorton/vtnorton.com/pull/38
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论