【问题标题】:Conditional SSR with Next.jsNext.js 的条件 SSR
【发布时间】:2021-12-02 02:57:04
【问题描述】:

我正在构建一个在 Netlify 上托管 Next.js 的网站,我想限制对暂存环境的访问,并通过根据我的 ip 白名单检查用户 ips 来允许它在生产环境中使用。

为此,我需要使用 getServerSideProps 从标头中获取 IP 并进行比较。在暂存时,我不需要此功能,并且相同的页面不应具有此功能。 看起来 getServerSideProps 不能根据环境变量有条件地运行,所以我目前坚持使用它。

也许有人遇到过同样的问题,或者可以建议其他方法吗?

【问题讨论】:

  • 您可以访问 getServerSideProps 中的环境变量,例如 process.env.YourKey 并处理此逻辑?
  • “看起来getServerSideProps 不能根据环境变量有条件地运行” - 你到底是什么意思?虽然getServerSideProps 确实会在每个页面请求上运行,但您可以根据环境变量控制它在内部运行的内容。
  • @juliomalves getServerSideProps 和 getStaticProps 不能在页面内同时使用。另外,您不能将 getServerSideProps 包装在条件中。我使用 babel 插件解决了这个问题,并在构建时从代码中删除了 getServerSideProps。
  • 我的意思是,您可以在 getServerSideProps 中设置条件。随意添加您找到的解决方案作为您自己问题的答案。
  • @juliomalves 正如我之前所说,getServerSideProps 必须是条件的结果。

标签: javascript next.js conditional-statements server-side-rendering


【解决方案1】:

在 next.js 中找到了该问题的解决方案。他们几天前发布了 Nettlify 插件,现在他们支持下一个 js 重定向。 Essential Next.js plugin v4 release notes

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2021-07-05
    • 2019-12-27
    • 2022-06-12
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2020-08-01
    相关资源
    最近更新 更多