3

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

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

2 回答 2

3

我刚刚在同一个问题上经历了很多试验和错误。我注意到firebase 文档中有一小部分:

Hosting 与原始请求路径匹配的源值,而不考虑任何重写规则

如果你的设置和我的一样,你的 firebase.json 文件中可能有这个:

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

但是,虽然您可能返回 index.html,但原始请求路径只是“/”,因此在您的 headers 部分使用:

"source": "/"

这对我有用。

于 2019-05-31T16:47:08.143 回答
1

经过大量的试验和错误,我发现了问题。这一切都是在我尝试使用加载 index.html 时https://my-project.firebaseapp.com- 这显然不会触发标题。我必须/index.html在 URL 的末尾显式添加以使其工作:https://my-project.firebaseapp.com/index.html. 我不应该这样做,但这就是问题所在。所以问题仍然存在 - 你如何让 firebase 配置匹配一个隐含的index.html.

于 2018-02-07T19:55:04.990 回答