ホームページ  >  に質問  >  本文

コンテンツ セキュリティ ポリシー指令の違反: インライン スクリプトは「script-src 'self'」仕様に準拠していません

<p><code>react-create-app</code> を使用して Chrome 拡張機能を構築します。 React-create-app で <code>npm run build</code> を使用すると、次のエラーが発生します: </p> <ブロック引用> <p>インライン スクリプトの実行は、コンテンツ セキュリティ ポリシー ディレクティブ「script-src 'self'」に違反するため拒否されます。インライン実行を有効にするには、「unsafe-inline」キーワード、ハッシュ ('sha256-5=')、または 1 回限りの nonce ('nonce-...') を使用します。 </p> </blockquote> <p><code>index.html</code></p> のエラー <pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html lang="ja"> <頭> <meta charset="utf-8" /> <link rel="ショートカット アイコン" href="%PUBLIC_URL%/favicon.ico" /> <meta name="viewport" content="width=device-width、initial-scale=1" /> <meta name="テーマカラー" content="#000000" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" /> <リンク rel="スタイルシート" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" クロスオリジン=「匿名」 /> <!-- Manifest.json は、Web アプリケーションがユーザーのモバイル デバイスまたはデスクトップにインストールされるときに使用されるメタデータを提供します。 https://developers.google.com/web/fundamentals/web-app-manifest/ を参照してください。 --> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <!-- 上記のタグで %PUBLIC_URL% が使用されていることに注意してください。 ビルド プロセス中に、これは「public」フォルダーの URL に置き換えられます。 HTML から参照できるのは「public」フォルダ内のファイルのみです。 「/favicon.ico」や「favicon.ico」とは異なり、「%PUBLIC_URL%/favicon.ico」はクライアント ルートおよびルート以外のパブリック URL で正しく機能します。 「npm run build」を実行して、非ルートのパブリック URL を構成する方法を学習します。 --> <title>React アプリ</title> </head> <本体> <noscript>このアプリケーションを実行するには JavaScript を有効にする必要があります。 </noscript> <div id="ルート"></div> <!-- この HTML ファイルはテンプレートです。 ブラウザで直接開くと、空白のページが表示されます。 このファイルには、Web フォント、メタ タグ、または分析を追加できます。 ビルドステップでは、バンドルされたスクリプトを ` タグに入れます。 開発を開始するには、「npm start」または「yarn start」を実行します。 本番バンドルを作成するには、「npm run build」または「yarn build」を使用します。 --> </ボディ> </html></pre> <p><strong>manifest.json</strong></p> <pre class="brush:php;toolbar:false;">{ "manifest_version": 2、 "name": "IC プロジェクト クロム拡張機能", "description": "この拡張機能は、実際の Chrome 拡張機能を作成するための出発点です", "バージョン": "0.0.1", "ブラウザアクション": { "default_popup": "index.html", "default_title": "ポップアップを開く" }、 「アイコン」: { "16": "assets/icon-128.png", "48": "assets/icon-128.png", "128": "assets/icon-128.png" }、 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" }</pre> <p><br /></p>
P粉276064178P粉276064178452日前537

全員に返信(1)返信します

  • P粉447785031

    P粉4477850312023-08-16 13:58:19

    数時間イライラした後、うまくいく解決策を見つけました。スクリプトの実行方法は Mac と PC で異なります。私が見つけた答えの多くには、「set」がある場合とない場合で違いがありました。 「&&」が付いているものもあれば、付いていないものもあります...しかし、どれも私にとっては機能しません。

    つまり、次のように「cross-env」npm パッケージを使用します:

    リーリー

    これは PC 上で動作しますが、おそらく Mac でも動作します。もちろん、これを行う前に npm install --save-devcross-env を実行する必要があります。

    返事
    0
  • キャンセル返事