是否可以根据用户代理(设备类型)在 vercel 上使用 nextjs 提供不同版本的静态页面?
Posted
技术标签:
【中文标题】是否可以根据用户代理(设备类型)在 vercel 上使用 nextjs 提供不同版本的静态页面?【英文标题】:Is it possible to serve different versions of a static page with nextjs on vercel according to useragent (device type)? 【发布时间】:2021-05-14 13:34:32 【问题描述】:nextjs 页面/users/[userid]
在vercel 平台的构建时静态呈现。
无论如何,是否可以根据用户代理(设备类型)通过 vercel 或 nextjs 上的某些配置来提供该页面的两个不同版本? (同时保持静态)
请求example.com/users/userid
的移动用户与请求相同路径的桌面用户获取不同的静态页面。
【问题讨论】:
上下文对象可以让您访问用户代理标头:nextjs.org/docs/api-reference/data-fetching/… 【参考方案1】:目前,此功能不可用。不过,我们正在努力进行更新,以使其成为可能。
敬请关注 Vercel 平台和 Next.js 的更新。
编辑:现在可以使用“has”属性和“rewrites”:
// next.config.js
module.exports =
async rewrites()
return
beforeFiles: [
source: '/some-page',
destination: '/somewhere-else',
has: [
type: 'header',
key: 'user-header',
value: 'insert-regex-here'
],
,
],
// ...
,
【讨论】:
甜蜜!谢谢(你的)信息。您能否透露此功能的粗略估计时间表?只是试图衡量是否值得建立一个临时解决方案...... 我不能。但是你应该给团队至少 7 天以上是关于是否可以根据用户代理(设备类型)在 vercel 上使用 nextjs 提供不同版本的静态页面?的主要内容,如果未能解决你的问题,请参考以下文章