URL中的Firebase托管路径参数不起作用

时间:2018-05-10 03:56:50

标签: firebase url-rewriting firebase-hosting

我需要通过使用路径参数来提供动态内容,以便在firebase上托管时从URL中获取id。例如:

  

mydomain.com/apps/4480023

在这种情况下,我想提取4480023作为我正在寻找的资源的ID。我在firebase.json文件中尝试了以下更改:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      },
      {
        "source": "/apps/**",
        "destination": "/apps.html"
      }
    ],
    "cleanUrls": true
  }
}

在这种情况下,我可以使用javascript函数在用户浏览该资源时从URL中检索ID。我的问题是,这个重写不起作用,它将用户引导到index.html页面,并且所有CSS / JS文件最终都无法正常运行。

如何修改此功能以启​​用此功能?

1 个答案:

答案 0 :(得分:2)

按顺序检查重写。这意味着您的第一次重写(与所有请求匹配)始终由index.html提供。

您需要做的就是更改重写的顺序,以便/apps/**/**捕获其他所有内容之前有可能匹配。

"rewrites": [
  {
    "source": "/apps/**",
    "destination": "/apps.html"
  },
  {
    "source": "**",
    "destination": "/index.html"
  }
]