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 之间的区别?