0

我正在构建一个扩展,并试图保持它的结构良好。其中一部分将使用某种类型的模板系统(Mustache、Handlebars 等)。请注意,我已经意识到必须使用我使用的任何库的特定非评估版本。

问题是从 app.js 脚本(核心逻辑)中,我无法通过 XHR 加载 /templates 中的文件内容(见下文)。

load 事件永远不会触发,当我使用 onreadystatechange 检查时,它会立即跳转到状态码 0 的状态 4。(状态 4 和状态 200 是我们想要的)。

获取文件的 Chrome url 有效,例如

chrome.extension.getURL('templates/view1.html')
//chrome-extension://hdhpjlpbepobcdgnkklnakdpoojaahjg/templates/view1.html 

我怀疑 manifest.json 中的某些内容配置不正确。我已经阅读了 CSP 文档,但没有什么让我感到惊讶的是,为什么应该拒绝访问扩展的本地文件。请注意,XHR 请求不会引发错误,它们只是从不返回数据。

应用程序的结构是这样的:

/manifest.json
/src
    app.js
    style.css
/libs
    jquery.js
    mustache.js

/templates
    view1.html
    view2.html

清单.json

{
  "name": "Test Extension",
  "version": "0.0.1",
  "manifest_version": 2,
  "icons": {
//    "16": "",
//    "48": ""
//    "128": ""
  },
//  "default_locale": "en",
  "permissions": [
    "contentSettings",
    "http://*/*",
    "https://*/*"
  ],
  "content_scripts": [
    {
      "matches": [
        "https://www.google.com/search*"
      ],
      "css": [
        "src/style.css"
      ],
      "js": [
        "src/app.js",
        "libs/jquery.js",
        "libs/mustache.js"
      ],
      "run_at": "document_start"
    }
  ]
}
4

1 回答 1

1

web_accessible_resources您需要在清单的某个部分中列出要加载的文件。

于 2013-09-24T22:49:56.953 回答