Firebase 托管重写 glob 行为问题

Firebase Hosting rewrite glob behaviour issue

我已经建立了一个包含三个页面和我的自定义域设置的 firebase 托管项目。这些页面根据 url 中的不同路径被点击。 firebase.json文件如下

{

    "hosting": {

    "public": "public",

   "ignore": [
     "firebase.json",
     "**/.*",
     "**/node_modules/**"
    ],

   "rewrites": [ {
       "source": "/main",
       "destination": "/index.html"
   },{
       "source": "/waitlistview/**",
       "destination": "/waitlistview.html"
   },{
       "source": "/mwaitlistview/**",
       "destination": "/waitlistview-minimal.html"  
   } 
   ],

   "cleanUrls": true
   }
}

现在当我尝试 url :

foodini.co.in/waitlistview

我没有收到 404 页面错误,而是点击了我的页面

而如果我点击 url:

foodini.co.in/mwaitlistview

如我所料,我得到了 404 页面。

如何使第一个 url 也转到 404 页面

根据 firebase 托管文档,托管首先尝试将 public 目录中的文件映射到 url 中的路径。只有没有这样的文件,重写才会生效。

就我而言,我在 public 文件夹中直接有一个文件 /waitlistview.html。因此,即使没有尾部斜杠,firebase 托管也只是将 url 映射到该文件。重写从未发生,因此没有 404 页面

还有感兴趣的人:

您的默认域名直接映射到index.html,无需任何特定路径

此外,/waitlistview** 与通过 GLOB 匹配的 /waitlistview/Ahmedabad/xyz 路径不匹配,因此请在 **

之前添加一个斜杠

添加

 "trailingSlash": false,

行前

  "cleanUrls": true

原因是“foodini.co.in/waitlistview”不匹配“/waitlistview/”,它会匹配“/waitlistview”。