内容安全策略不从localhost加载文件

时间:2013-10-01 05:59:49

标签: javascript google-chrome-app content-security-policy cross-site livereload

我正在尝试创建一个chrome应用程序,并希望使用livereload,以便在我进行更改时自动更新。但我收到以下消息 -

错误消息:

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文件中添加了以下部分,但随后chrome开始发出警告。

"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"
    }

然后一切正常。有人可以解释为什么会发生这种情况吗?

1 个答案:

答案 0 :(得分:-5)

你的问题是什么?错误消息非常明显。

您的代码不能违反适用于Chrome应用的默认CSP。您是否已查看内容安全策略并使您的应用符合规定?你有没有看过code samples有关你想要做什么的例子?

第一个问题是您正在尝试加载和执行外部内容。 CSP禁止,即使它没有,如果您这样做,您的应用程序将无法脱机工作。尝试将脚本作为应用程序的一部分,而不是外部(localhost)服务器。然后,再次阅读CSP并修复任何剩余问题,以便错误消息消失。