Siyuan's Blog

  • 首页

  • 归档

  • 标签

  • 搜索

'解决 Web fonts 在 Firefox 下不加载的问题'

发表于 2013-03-20 |

今天给大叔的 Eureka 换新首页,换完之后大叔表示在 Firefox 下 Webfont 不加载。

开始觉得肯定是 MIME Types 的问题。。。于是,去 Rackspace Cloud Files 里把 Content-Type 修正了一下。

修正之后还是不正常,开 Google 搜索了下。

然后发现 Firefox 是不考虑 Webfonts 的 Content-Type 的:

Note: Because there are no defined MIME types for TrueType, OpenType, and Web Open File Format (WOFF) fonts, the MIME type of the file specified is not considered.

问题出在这里:

In Gecko, web fonts are subject to the same domain restriction (font files must be on the same domain as the page using them), unless HTTP access controls are used to relax this restriction.

如果 Web fonts 不是与发起请求的页面在一个域下,那么除非 HTTP access control 允许了,否则这个字体文件是不会被载入的。

嗯,知道问题在哪儿就简单了,去加个 Custom-Header:

Access-Control-Allow-Origin: https://xxooxxoo.xxx

然后刷新下 CDN 即可。。。

火狐,就你事儿多。。。

参考:

[1] @font-face – Mozilla Developer Network

'在 NodeJS 上解析 PyDict'

发表于 2013-03-11 |

一般情况下呢,PyDict 长得确实是挺像 JSON 的。

比如这种:

1
{'foo': 'bar'}

把单引号全换成双引号就可以解析了,这样子:

1
JSON.parse("{'foo': 'bar'};".replace(/\'/g, '"'))

但是,要是遇到带 Unicode 的,比如:

1
{'\\xe9\\x94\\x99\\xe8\\xaf\\xaf': '\\xe4\\xbd\\xa0\\xe4\\xbb\\xac\\xe5\\x86\\x8d\\xe8\\xaf\\xb4 Python Dict \\xe5\\xb0\\xb1\\xe6\\x98\\xaf JSON \\xe6\\x88\\x91\\xe5\\xb0\\xb1\\xe6\\x97\\xa5\\xe6\\xad\\xbb\\xe4\\xbd\\xa0\\xef\\xbc\\x81\\xe5\\x93\\xbc\\xef\\xbc\\x81'}

就木有办法了,也许有人说。。。有!我把 \xb1 什么的自己处理掉!

好吧这是一种办法,但是我用了更蛋疼的方法,直接用 C艹 写了个库,把 PyDict 用 Python 转成 JSON 然后 JSON.parse 之。。。

由于学艺不精,写这个库的时候 Segment fault 数次,还曾有各种内存泄露。

嗯,不过总算是写完了。

Github 地址在这里: https://github.com/ym/node-pydict

要用的话直接 npm install pydict 就可以安装了。

1
2
var pydict = require('pydict');
console.log(pydict.parse("{'\\xe9\\x94\\x99\\xe8\\xaf\\xaf': '\\xe4\\xbd\\xa0\\xe4\\xbb\\xac\\xe5\\x86\\x8d\\xe8\\xaf\\xb4 Python Dict \\xe5\\xb0\\xb1\\xe6\\x98\\xaf JSON \\xe6\\x88\\x91\\xe5\\xb0\\xb1\\xe6\\x97\\xa5\\xe6\\xad\\xbb\\xe4\\xbd\\xa0\\xef\\xbc\\x81\\xe5\\x93\\xbc\\xef\\xbc\\x81'}"));

PS: 虽然我吐槽了很多次但是我还是要再吐槽一遍!!!研发的亲们!!!你们能不能不要再告诉我 PyDict 就是 JSON 了啊啊啊!!!

再 PS: 困死我了居然还睡不了因为今天是 Deadline … 哼哼哼下次再乱改需求就不干了!!!

由于在我的生产环境中又 Segfault 了 … 于是我用了一种 很黄很暴力 的方法

1
2
3
4
5
6
7
8
9
10
11
12
var pydict = function(str) {
/* drop all unicode string */
str = str.replace(/(\\x[0-9a-f]{2})/g, function() { return '' }).replace(/\'/g, '"');

try {
str = JSON.parse(str);
} catch(e) {
return false;
}

return str;
}

嗯… 反正我也不用那堆中文…

解决 IIS 上无法正常下载 ini 文件的问题

发表于 2012-10-05 | 更新于 2014-06-07 |

解决方法很简单:

1. 打开 Internet 信息服务(IIS) 管理器

2. 右击 网站 ,点击 属性

3. 切换到 HTTP 头 选项卡

4. 点击 MIME 类型 按钮

5. 点击 新建,

扩展名为 .ini

MIME类型为 application/octet-stream

6. 一路确定…搞定

IIS 下面文件打不开大多数情况下无怪乎以下两种情况:

  1. MINE 类型设置不正确
  2. 文件权限设置不正确
1…101112

Siyuan Miao

35 日志
42 标签
GitHub Twitter
© 2018 Siyuan Miao
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Mist v6.3.0