Google App Engine 和 ttf 字体不起作用

Posted

技术标签:

【中文标题】Google App Engine 和 ttf 字体不起作用【英文标题】:Google App Engine and ttf font not working 【发布时间】:2014-02-06 00:46:05 【问题描述】:

我遇到了一个小问题,谷歌应用引擎抱怨我的 ttf 文件。它是这样说的:

Could not guess mimetype for css/fonts/Pacifico.ttf.  Using application/octet-stream.

现在我已经关注 this 链接并适当地更改了我的 yaml 文件(或者我认为是这样):

- url: /css/fonts/(.*\.ttf)
    static_files: css/fonts/\1
    upload: css/fonts/(.*\.ttf)
    mime_type: application/x-font-ttf

但是当我这样做时,我得到以下信息:

appcfg.py: error: Error parsing C:\Users\Roberto\Desktop\bootstrap\app.yaml: mapping values are not allowed here
  in "C:\Users\Roberto\Desktop\bootstrap\app.yaml", line 25, column 17.
2014-01-16 23:22:16 (Process exited with code 2)

在这件事上有什么帮助吗?

【问题讨论】:

您粘贴的代码中的缩进是错误的。你的文件里是这样的吗?确保它与文档完全匹配,缩进有两个空格而不是制表符。 格雷格你是个天才。首先是你说的间距。不幸的是仍然无法猜测 css/fonts/Pacifico.ttf 的 mimetype。使用应用程序/八位字节流。错误 【参考方案1】:

我已经使用您使用的相同 app.yaml 处理程序对 glyphicons-halflings-regular.ttf from the Bootstrap project 进行了测试(根据 cmets 进行缩进更改)并且可以验证它是否按预期工作:

这让我相信您可能使用的是旧版本的 GAE SDK(我使用 1.8.8)或者您的安装有其他问题。

你可以试试这个:appcfg.py 使用 python 的mimetypes 模块从文件扩展名中猜测类型,所以无论如何,你应该能够通过将application/x-font-ttf mime 类型添加到你的操作系统来解决这个问题。

您使用的是 Windows,因此您需要编辑注册表并将 application/x-font-ttf 键添加到 HKEY_CLASSES_ROOT\MIME\Database\Content Type,并在新键下添加一个名为 Extension 的字符串值,其值为 .ttf


将 mimetype 添加到 Windows 的扩展过程

    打开注册表编辑器:点击Winkey + R并输入regedit,点击Enter 通过注册表导航到所需位置:打开HKEY_CLASSES_ROOT,在其中打开MIME,在其中打开Database,在其中打开Content Type。它就像一个文件夹结构。 右键单击Content Type并选择New > Key,将其命名为application/x-font-ttf。 右键单击刚刚创建的密钥并选择New > String Value。将其命名为 Extension。 双击刚刚创建的值并将其赋值为值数据.ttf,点击确定。 退出 regedit 就完成了!

Final none:我认为这与文件本身没有任何关系,因为mimetypes 模块仅使用文件扩展名来计算 MIME 类型。除非文件名中有一些疯狂的不可打印字符。您可以尝试使用我链接到的 glyphicons-halflings-regular 字体来消除这种可能性。

【讨论】:

有没有可能是我的 ttf 文件有问题?就像谷歌对实际字体有问题?我已经更新了我的应用引擎,但仍然有同样的问题。还有关于将 ttf 添加为 mime 类型的教程吗?因为你的最后一段对我来说有点太快了 我还没有找到一个,因为我实际上阅读了mimetypes code 来想出这个答案。我会用更彻底的程序更新我的答案。

以上是关于Google App Engine 和 ttf 字体不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud 中的 Google Compute Engine、App Engine 和 Container Engine 有啥区别?

连接 Google App Engine 和 Google Compute Engine

Google App Engine Flexible 和 Google Container Engine 之间的区别?

sql GQL - Alternativa和没有Google App Engine一样

Google App Engine 和 404 错误

如何在 Google Cloud Functions 和 Google App Engine 之间进行选择?