首页 > 解决方案 > 部署 react/express 应用程序后出现内容安全策略错误

问题描述

我向 heroku 部署了一个 react/express 应用程序,当转到这里时,我收到此错误“拒绝加载图像” https://nameless-sands-37753.herokuapp.com/favicon.ico,因为它违反了以下内容安全策略指令:“default-src 'none'”。请注意,'img-src' 没有显式设置,因此 'default-src' 用作后备。这是我尝试过的:

if (process.env.NODE_ENV === "production") {
  app.use("/voleo/", express.static("client/build"));
  app.use(helmet.contentSecurityPolicy({
    directives: {
      defaultSrc: ["'self'"],
      styleSrc: ["'self'"],
      imgSrc: ["'self"]
    }
  }))

  app.get("*", (req, res) => {
    res.sendfile(path.resolve(__dirname, "client", "build", "index.html"));
  });
}

标签: htmlcontent-security-policy

解决方案


该问题的更一般的答案是在终端中检查 heroku 日志,如下所示:

heroku logs -n 500 

(选择要记录的行数)或

heroku logs --tail 

(对于实时日志,但我发现第一个命令更有效)

在那里,您将看到阻止应用程序正确呈现的确切错误。


推荐阅读