Firebase托管不会发送自定义HTTP标头

时间:2018-02-07 06:28:06

标签: firebase firebase-hosting firebase-cli

根据Firebase Hosting docs,我应该能够在从服务器收到的响应中设置自定义标头。我试图在所有html文件上设置X-Frame-Options标头,但服务器根本不想发送此标头!这是我的firebase.json文件,如果我做错了,请告诉我:

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "headers": [
      {
        "source": "**/*.html",
        "headers": [
          {
            "key": "X-Frame-Options",
            "value": "SAMEORIGIN"
          }
        ]
      }
    ]
  }
}

2 个答案:

答案 0 :(得分:1)

经过大量的反复试验,我发现了这个问题。这一切都是在我尝试使用https://my-project.firebaseapp.com加载index.html时 - 这显然不会触发标头。我必须在网址末尾明确添加/index.html才能使其正常运行:https://my-project.firebaseapp.com/index.html。我不应该这样做,但这就是问题所在。所以问题仍然存在 - 如何让firebase配置与隐含的index.html匹配。

答案 1 :(得分:1)

在同一问题上,我经历了很多试验和错误。我注意到firebase documentation中有一小段:

  

“托管”与原始请求路径匹配的源值,不管任何重写规则

如果您的设置类似于我的设置,则可能在firebase.json文件中有此设置:

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

但是,尽管您可能返回index.html,但是原始请求路径只是“ /”,因此在标头部分使用以下代码:

"source": "/"

这对我有用。