【问题标题】:Firebase i18n rewrite language-override cookie is ignoredFirebase i18n 重写语言覆盖 cookie 被忽略
【发布时间】:2021-06-26 16:31:47
【问题描述】:

我使用标准 Angular 本地化包本地化了一个 Angular 应用程序。这很完美,我将我的应用程序托管在 firebase 上。我阅读了关于如何配置 i18n 重写的 firebase 文章,并在我的 firebase.json(https://firebase.google.com/docs/hosting/i18n-rewrites) 中实现了它。 法语版本在 .../fr 时加载,俄语版本在 .../ru 时加载,具体取决于用户浏览器的语言偏好,默认情况下 .../en 用于英语。重写也按预期工作。

我还想让用户保存他们的偏好,这应该可以通过设置
document.cookie = "firebase-language-override=fr"

但是,cookie 似乎被完全忽略了,firebase 仍然可以满足用户的偏好。

有什么经验或建议我能做些什么吗?还有其他方法可以更改 firebase 重写行为吗?

【问题讨论】:

    标签: angular firebase url-rewriting internationalization angular-i18n


    【解决方案1】:

    问题很可能与缓存控制有关。当客户端第一次加载页面时,它会被缓存一个小时(默认情况下),即使你更改了 cookie,请求相同的页面也会给你缓存的结果(基于初始条件的结果 - 用户语言设置或 cookie 覆盖)。

    您可以通过在开发工具的“网络”选项卡中禁用缓存来测试这一点。

    要解决此问题,请尝试更新 firebase.json 中默认路由的缓存控制:

    {
      "headers": [
          {
            "source": "/",
            "headers": [
              {
                "key": "Cache-Control",
                "value": "no-store"
              }
            ]
          }
        ]
     }
    

    【讨论】:

    • 非常感谢,这正是我所缺少的!
    猜你喜欢
    • 2016-05-07
    • 2018-08-04
    • 2013-09-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多