【问题标题】:Firebase Hosting rewrite glob behaviour issueFirebase Hosting 重写 glob 行为问题
【发布时间】:2017-10-29 22:06:12
【问题描述】:

我已经建立了一个包含三个页面和我的自定义域设置的 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
   }
}

现在当我尝试一个网址时:

foodini.co.in/waitlistview

我仍然点击我的页面,而不是收到 404 页面错误

如果我点击网址:

foodini.co.in/mwaitlistview

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

如何让第一个网址也转到 404 页面

【问题讨论】:

    标签: firebase firebase-hosting


    【解决方案1】:

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

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

    也适用于任何感兴趣的人:

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

    此外,/waitlistview** 与通过 GLOB 匹配的 /waitlistview/Ahmedab​​ad/xyz 路径不匹配,因此请在 ** 之前添加一个斜杠

    【讨论】:

      【解决方案2】:

      添加

       "trailingSlash": false,
      

      行前

        "cleanUrls": true
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多