2

Chrome アプリケーションを作成しようとしていますが、変更を加えたときに自動的に更新されるように livereload を使用したいと考えています。しかし、次のメッセージが表示されます—</p>

エラーメッセージ:

Refused to load the script 'http://localhost:35729/livereload.js' because it violates the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

manifest.json ファイルに次のセクションを追加しましたが、クロムは警告を発し始めました。

"content_security_policy": "script-src 'self' 'http://127.0.0.1:1337/livereload.js'; object-src 'self'"

警告 -

この拡張機能をインストールしようとすると、次のような警告が表示されました。「content_security_policy」は、拡張機能と従来のパッケージ アプリに対してのみ許可されており、これはパッケージ アプリです。

アップデート:

バックグラウンド スクリプトを使用してウィンドウを作成すると、この問題が発生します。つまり、マニフェスト ファイルにこれがある場合

"background": {
    "scripts": ["backgound.js"]
},

"content_security_policy": "script-src 'self' http://localhost:1337/livereload.js 'unsafe-eval'; object-src 'self'"

バックグラウンドスクリプトを使用しない場合は、代わりにこれを使用してください-

"app": {
    "launch": {
        "local_path": "window.html"
    }

その後、すべてがうまく機能します。誰かがなぜこれが起こっているのか説明できますか?

4

1 に答える 1

-6

あなたの質問は何ですか?エラーメッセージは一目瞭然です。

コードは、Chrome アプリに適用されるデフォルトの CSP に違反することはできません。コンテンツ セキュリティ ポリシーを調べて、アプリを準拠させましたか? あなたがやろうとしていることの例として、コードサンプルを調べましたか?

最初の問題は、外部コンテンツを読み込んで実行しようとしていることです。CSP はそれを禁止しており、そうしなかったとしても、それを行った場合、アプリはオフラインで動作しません。外部 (localhost) サーバーではなく、アプリの一部としてスクリプトを含めてみてください。次に、CSPを読み、残りの問題を修正して、エラー メッセージが表示されないようにします。

于 2013-10-02T14:23:12.760 に答える