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