html - 部署 react/express 应用程序后出现内容安全策略错误
问题描述
我向 heroku 部署了一个 react/express 应用程序,当转到这里时,我收到此错误“拒绝加载图像” https://nameless-sands-37753.herokuapp.com/favicon.ico,因为它违反了以下内容安全策略指令:“default-src 'none'”。请注意,'img-src' 没有显式设置,因此 'default-src' 用作后备。这是我尝试过的:
- 将此添加到 manifest.json:
"content_security_policy": "default-src 'self' https://nameless-sands-37753.herokuapp.com/"
- 将此添加到我的 server.js
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"));
});
}
- 删除了 faveicon.ico
添加了这个标签:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' https://* 'unsafe-inline'; script-src 'self' https://* 'unsafe-inline' 'unsafe-eval'; img-src 'self' https://*" />
仍然不确定我做错了什么。建议非常感谢。
解决方案
该问题的更一般的答案是在终端中检查 heroku 日志,如下所示:
heroku logs -n 500
(选择要记录的行数)或
heroku logs --tail
(对于实时日志,但我发现第一个命令更有效)
在那里,您将看到阻止应用程序正确呈现的确切错误。
推荐阅读
- python-3.x - 使用 plt.fill_between 和 plt.subplot
- python - 我需要从列表列表中制作字典
- spring - 将相关文档保存在 Mongo Reactive 但不在同一个集合中
- javascript - 如何用 Javascript 中的异步请求的结果填充对象的属性?
- excel - 使用 VBScript 将 Excel 工作表的(部分)范围导出为 CSV
- python - 执行“公文包运行android”时出现beeware错误
- javascript - 将 min.js 文件导入 ReactJS 项目
- power-automate - 您可以在无需每次都输入管理员信息的情况下以管理员身份运行电源自动化吗
- maps - 如何将 Openlayers 6.5 鼠标位置控制从 LonLat 转换为 MGRS?
- excel - 增加 A 列的值