错误:设置时“请注意,未显式设置 'style-src-elem'”

edw*_*era 8 google-font-api content-security-policy electron

和这个人有同样的问题,但我没有使用 .NET,所以我不知道这个问题的答案是什么。我正在使用电子。

<head>
<meta http-equiv="Content-Security-Policy" content="style-src-elem 'self' https://fonts.googleapis.com">

<meta http-equiv="Content-Security-Policy" content="font-src https://fonts.gstatic.com">

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

<meta charset="UTF-8">

<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap" rel="stylesheet">

<link rel="stylesheet" href="index.css">
</head>
Run Code Online (Sandbox Code Playgroud)

这是错误:

Refused to load the stylesheet 'https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'style-src-elem' was not explicitly set, so 'default-src' is used as a fallback.

问题就在这里,'style-src-elem'IS明确规定了。我不知道发生了什么事。请帮忙

edw*_*era 7

没关系,想通了!我以为我可以将<meta>标签分开以提高可读性,但事实证明并非如此。每个<meta>标签都会覆盖前一个标签,留下所有内容来检查最后一个content="default-src 'self'" <meta>标签。这是遇到类似问题的任何人的工作代码:

<head>
    <meta http-equiv="Content-Security-Policy" content="
        default-src 'self';
        style-src-elem 'self' https://fonts.googleapis.com;
        font-src https://fonts.gstatic.com;
    ">

    <meta charset="UTF-8">



    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap" rel="stylesheet">

    <link rel="stylesheet" href="index.css">
</head>

Run Code Online (Sandbox Code Playgroud)

  • 是的,多个元意味着多个 CSP,这些工作方式很棘手。但您仍然遇到错误“拒绝加载样式表'https://fonts.googleapis.com...”,请在 Firefox 或 Safari 中查看。您必须将“style-src-elem”中的内容复制到“style-src”中,因为某些浏览器[不支持“style-src-elem”](https://csplite.com/csp/test235/#results ) 指令。 (2认同)