如何解决拒绝加载字体“ <URL>”,因为它违反了以下内容安全策略指令
嘿,所以我想建立一个网站,但遇到一个问题: 当我通过以某种url格式执行get请求时将其发送给客户端时,将我的html文件加载到express中时,会出现以下错误:
Refused to load the font '<URL>' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'font-src' was not explicitly set,so 'default-src' is used as a fallback.
如果我手动(在没有服务器的情况下)打开html文件,则不会出现此错误,并且当我尝试使用@import url('https://fonts.googleapis.com/...');
从url导入字体时会出现相同类型的错误,但是如果我通过下载将其导入。
最奇怪的是,我的首页html文件没有出现错误,该文件链接到相同的css文件,并且与另一个非常相似。
我尝试添加此内容:
<meta http-equiv="Content-Security-Policy" content="font-src 'self' data:; img-src 'self' data:; default-src 'self'">
或
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; font-src fonts.gstatic.com; style-src 'self' fonts.googleapis.com" />
或其他人在其他帖子上所说的它的变体,但它似乎不起作用。
默认情况下导入的Open Sans似乎是个问题。
我尝试过使用Chrome,Firefox,Brave,Opera等多种浏览器,但它们均返回相同的错误。
这是我所讨论文件的HTML代码:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; font-src data:" />
<title>Test</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
...
</body>
</html>
这是我的Express路线:
router.get('/[a-zA-Z0-9]{5}',(req,res) => {
res.sendFile('../public/test.html',{ root: __dirname })
})
请注意,我也有发送主页html文件的主页路由,它可以正常工作:
app.get('/',res) => {
res.sendFile('/public/index.html',{ root: __dirname })
})
并且html文件甚至没有Content-Security-Policy元标记。
因此,如果有人能够提供帮助,那将是真正的国王,因为大约5个小时以来我一直在寻找解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。