Firebase主机重写无法正常工作

Firebase主机重写无法正常工作,firebase,url-rewriting,firebase-hosting,Firebase,Url Rewriting,Firebase Hosting,我目前有以下配置: // firebase.json { "hosting": [ { "rewrites": [{ "source": "/articles{,/**}", "destination": "/articles&qu

我目前有以下配置:

// firebase.json   
{
        "hosting": [
            {
                "rewrites": [{
                    "source": "/articles{,/**}",
                    "destination": "/articles"
                },
                {
                    "source": "**",
                    "destination": "/index.html"
                }]
            }
        ]
 }

如果我去mysite.com/articles/

我相信有两个可能的原因

  • 您已将宿主设置为数组而不是对象(尽管我不完全确定这是否是一个问题)
  • 其次,正如您在共享的文档中所看到的,就在标题Direct requests to a function的上方,它指出目标文件必须存在,并且由于
    mysite.com/articles
    的计算结果不是本地文件,它被第二条重写规则捕获并重定向到index.html

  • 在采取以下步骤后,我能够解决该问题:

  • 将我的源代码从
    /articles{,/**}
    更改为
    /articles/**
  • 将我的目的地从
    articles
    更改为
    articles.html
    ,这是一个有效的本地文件
  • 认识到对
    firebase.json的更改在重新启动之前不会更改firebase主机模拟器的行为

  • #1:firebase.json中的
    rewrite
    属性是一个数组,所以这不会是问题所在。但是你的#2确实可能是问题的原因:因为
    /articles
    不是一个现有的文件,托管尝试下一个规则。@FrankvanPuffelen在1.中,他不是指重写属性,而是指托管属性。谢谢你澄清@HelderEsteves。我完全忽略了这一点。这并没有解决问题
    articles.html
    是一个有效的本地文件,与
    index.html
    位于同一目录中。我不同意我的解决方案完全不正确。事实上,
    /articles
    不是正确的设置,因为它没有指向文件。我很高兴您能够找到解决方案。请尝试
    “source”:“/articles/**”