内容安全策略不从本地主机加载文件
问题描述:
我想做一个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文件,但随后开始铬给予警告。 “content_security_policy”仅允许用于扩展和传统 打包应用程序,这是一个打包应用程序: -
"content_security_policy": "script-src 'self' 'http://127.0.0.1:1337/livereload.js'; object-src 'self'"
警告
这里当试图安装该扩展是警告。
UPDATE:
当我使用一个后台脚本来创建窗口的问题就出现了。即当我在清单文件
"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"
}
然后一切都运行得很好。有人可以解释为什么会发生这种情况吗?
答
你的问题是什么?错误信息非常明了。
您的代码无法违反适用于Chrome应用的默认CSP。您是否查看了内容安全策略并使您的应用符合要求?你有没有看过任何code samples的例子你想要做什么?
第一个问题是您正在尝试加载和执行外部内容。 CSP禁止,即使不这样做,如果你这样做,你的应用程序也不会脱机工作。尝试将脚本作为应用程序的一部分而不是外部(本地主机)服务器。然后,再次阅读CSP并修复所有剩余的问题,以便错误消息消失。
不幸的是,它更像是一个语法错误。我已经通过CSP文档,但它没有帮助。 – Tushar
我更新了这个问题,请看看你现在是否有任何意义? – Tushar