【问题标题】:Content Security policy not loading files from localhost内容安全策略未从 localhost 加载文件
【发布时间】:2013-10-01 05:59:48
【问题描述】:

我正在尝试制作一个 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"
    }

然后一切正常。有人可以解释一下为什么会这样吗?

【问题讨论】:

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


    【解决方案1】:

    你的问题是什么?错误消息是不言自明的。

    您的代码不能违反适用于 Chrome 应用的默认 CSP。您是否查看过内容安全政策并让您的应用程序合规?您是否查看过任何 code samples 以了解您正在尝试做什么?

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

    【讨论】:

    • 不幸的是,这更像是一个语法错误。我已经浏览了 CSP 文档,但没有帮助。
    • 我更新了问题,请问您现在是否有意义?
    猜你喜欢
    • 2017-09-30
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多