Google chrome extension 铬';s`update extensions now`不工作

Google chrome extension 铬';s`update extensions now`不工作,google-chrome-extension,auto-update,Google Chrome Extension,Auto Update,我做了一个非常基本的chrome扩展,并设置了一个简单的node.js服务器来测试自动更新。服务器托管了.crx文件,因此我可以通过访问localhost:3000/clients/chrome/extension.crx轻松安装扩展。但是当我转到tools->extensions并单击updateextensions now时,服务器没有收到请求。我本以为chrome会获得localhost:3000/clients/chrome/updates.xml,但事实并非如此。我做错了什么 代码

我做了一个非常基本的chrome扩展,并设置了一个简单的node.js服务器来测试自动更新。服务器托管了.crx文件,因此我可以通过访问
localhost:3000/clients/chrome/extension.crx
轻松安装扩展。但是当我转到
tools->extensions
并单击
updateextensions now
时,服务器没有收到请求。我本以为chrome会获得
localhost:3000/clients/chrome/updates.xml
,但事实并非如此。我做错了什么


代码

让我带您浏览代码,使其可复制:

$tree

.
|-- clients
|   `-- chrome
|       |-- extension
|       |   `-- manifest.json
|       |-- extension.crx
|       |-- extension.pem
|       `-- updates.xml
`-- web.js
扩展名实际上只是一个清单文件

manifest.json

{
  "name": "testing auto-updates",
  "version": "1.0",
  "update_url": "localhost:3000/clients/chrome/updates.xml",
  "description": "Version 1.0"
 }
如您所见,我指的是一个更新url,使自动更新成为可能

updates.xml

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='fkphbmkcjefhhnnlhhjlnkellidponel'>
    <updatecheck codebase='localhost:3000/clients/chrome/extension.crx' version='1.0' />
  </app>
</gupdate>
好的,让我们测试一下。首先,启动服务器: $node web.js

var express = require('express');

var app = express.createServer(express.logger());

/* ROUTES */

app.get('/clients/chrome/extension.crx', function(request, response)
{
    response.contentType('application/x-chrome-extension');
    response.sendfile('clients/chrome/extension.crx');
});

app.get('/clients/chrome/updates.xml', function(request, response)
{
    response.sendfile('clients/chrome/updates.xml');
});

/* ROUTES END */

var port = process.env.PORT || 3000;

app.listen(port, function() {
  console.log("Listening on " + port);
});
Listening on 3000
通过访问localhost:3000/clients/chrome/extension.crx安装扩展。这部分在第二次尝试时效果很好。服务器记录两次尝试:

127.0.0.1 - - [Thu, 26 Apr 2012 22:22:50 GMT] "GET /clients/chrome/extension.crx HTTP/1.1" 200 596 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19"
127.0.0.1 - - [Thu, 26 Apr 2012 22:25:47 GMT] "GET /clients/chrome/extension.crx HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19"

接下来,我转到工具->扩展并单击
立即更新扩展
。我希望chrome能够获取updates.xml文件,查看是否有任何变化,但是服务器不会记录任何请求。

试试
http://localhost:3000/clients/chrome/updates.xml
取而代之。

试试
http://localhost:3000/clients/chrome/updates.xml
取而代之。

试试
http://localhost:3000/clients/chrome/updates.xml
取而代之。谢谢,解决了这个问题。做一个回答,这样我就可以接受。如果你想要更简单的代表点,你可以尝试一下这种情况下仍然存在的问题:现在,服务器记录一个请求
updates.xml
,但不记录
extension.crx
,即使
updates.xml
表示有新版本。试试
http://localhost:3000/clients/chrome/updates.xml
取而代之。谢谢,解决了这个问题。做一个回答,这样我就可以接受。如果你想要更简单的代表点,你可以尝试一下这种情况下仍然存在的问题:现在,服务器记录一个请求
updates.xml
,但不记录
extension.crx
,即使
updates.xml
表示有新版本。