在自己的服务器上放置chrome插件

这几天写了个chrome插件No.iframe.for.YSSY,本想上传到Chrome Web Store,但在Chrome Web Store发布程序需要5美元的注册费用,我一时半会又没法找到信用卡帮忙支付,干脆放在自己服务器上算了。

但是却遇到一个问题:Chrome下载了No.iframe.for.YSSY.crx,却没有安装提示,需要用户手动将文件拖入浏览器中。(如图1)

图1 Chrome下载.crx文件后没有自动安装
图1 Chrome下载.crx文件后没有自动安装

我Google了一下,找到了Chrome Developer’s Guide中关于Hosting的说明
Google Chrome considers a file to be installable if either of the following is true:

	·The file has the content type application/x-chrome-extension
	·The file suffix is .crx and both of the following are true:
			·The file is not served with the HTTP header X-Content-Type-Options: nosniff
			·The file is served with one of the following content types:
				·empty string
				·"text/plain"
				·"application/octet-stream"
				·"unknown/unknown"
				·"application/unknown"
				·"*/*"

而我的服务器返回的.crx的http response header为

HTTP/1.1 200 OK
Date: Fri, 22 Jul 2011 08:16:44 GMT
Server: Apache
Last-Modified: Thu, 21 Jul 2011 11:38:13 GMT
ETag: "a51e404-8452-4a892c8b77340"
Accept-Ranges: bytes
Content-Length: 33874
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: text/x-fortran

于是解决方法就很简单了,我的站点是安装在apache下的,只需要在站点根目录的.htaccess中增加如下一行(如图2,注意不要改动wordpress的默认规则),如何在其他HTTP Server中修改mime-type就自行Google。

# .htaccess
AddType application/x-chrome-extension crx
图2 在.htaccess中指定mimetype
图2 在.htaccess中指定mimetype

然后再在Chrome里点击.crx超链接(可能需要先清除浏览器缓存),就可以看到安装提示了(如图3)。

图3 mime-type修改成功后就可以直接安装了
图3 mime-type修改成功后就可以直接安装了
本站文章除注明转载外,均为本站原创编译
转载请注明以下信息
文章转载自:鲁夫的爱 [ https://opengg.me/ ]
本文标题:在自己的服务器上放置chrome插件
本文地址:https://opengg.me/393/howto-host-chrome-extensions-on-your-own-server/

《在自己的服务器上放置chrome插件》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注