我正在尝试制作一个 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'"
警告-
here were warnings when trying to install this extension: 'content_security_policy' is only allowed for extensions and legacy packaged apps, and this is a packaged app.
更新:
当我使用后台脚本创建窗口时出现问题。即当我的 list 文件中有这个时
"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并修复所有遗留问题,以便错误消息消失。
关于javascript - 内容安全策略不从本地主机加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109029/